What is an efficient way to repeat a string to a certain length in Python?

In programming, it is useful to repeat or pad a string up to a certain length. Whether generating formatted output, filling templates, or creating patterns, being able to repeat a string to a specific length can save time and effort.

In this article, we are exploring efficient ways to repeat a string to a certain length. Python provides various approaches, such as using multiplication with slicing, built-in methods like ljust() and rjust(), and the itertools.cycle() function.

Using String Multiplication with Slicing

The most straightforward approach uses the * operator to repeat the string multiple times, then slices it to fit the required length ?

Example

text = "TP"
target_length = 11
result = (text * ((target_length // len(text)) + 1))[:target_length]
print(result)

The output of the above program is as follows ?

TPTPTPTPTPT

This method calculates how many full repetitions are needed, adds one extra to ensure sufficient length, then slices to the exact target length.

Using Python str.ljust() Method

The ljust() method left-aligns a string within a specified width. When combined with string multiplication, it can create repeated patterns ?

Syntax

string.ljust(width, fillchar)

Example

text = "ABC"
target_length = 10
result = (text * ((target_length // len(text)) + 1))[:target_length]
print(f"Result: '{result}' (Length: {len(result)})")

The output of the above program is as follows ?

Result: 'ABCABCABCA' (Length: 10)

Using Python itertools.cycle() Function

The itertools.cycle() function creates an infinite iterator that cycles through the characters of a string. Combined with islice(), it provides an elegant solution ?

Syntax

itertools.cycle(iterable)

Example

from itertools import cycle, islice

text = "ABBA"
target_length = 12
result = ''.join(islice(cycle(text), target_length))
print(f"Result: '{result}' (Length: {len(result)})")

The output of the above program is as follows ?

Result: 'ABBAABBAABBA' (Length: 12)

Comparison of Methods

Method Performance Best For Memory Usage
String Multiplication + Slice Fastest Short strings, simple patterns Low
ljust() with fillchar Good Padding with specific characters Low
itertools.cycle() Good Complex patterns, readable code Very Low (iterator)

Conclusion

For most cases, string multiplication with slicing offers the best performance and simplicity. Use itertools.cycle() for memory-efficient solutions with complex patterns, and ljust() when you need padding functionality.

Updated on: 2026-03-24T16:50:40+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements