Khi cần lấy các lặp lại ký tự của một ký tự cho trước, ta định nghĩa phương thức dùng giá trị chỉ mục để in các lần lặp.
Ví dụ
def to_string(my_list):
return ''.join(my_list)
def lex_recurrence(my_string, my_data, last_val, index_val):
length = len(my_string)
for i in range(length):
my_data[index_val] = my_string[i]
if index_val == last_val:
print(to_string(my_data))
else:
lex_recurrence(my_string, my_data, last_val, index_val + 1)
def all_lex(my_string):
length = len(my_string)
my_data = [""] * (length + 1)
my_string = sorted(my_string)
lex_recurrence(my_string, my_data, length - 1, 0)
my_string = "MQ"
print("The string is:")
print(my_string)
print("All permutations with repetition of " + my_string + " are...")
all_lex(my_string)
Đầu ra
The string is: MQ All permutations with repetition of MQ are... MM MQ QM QQ
Giải thích
- Hàm
to_stringnối list thành chuỗi. - Hàm
lex_recurrenceđệ quy sinh hoán vị có lặp. - Hàm
all_lexsắp xếp chuỗi và gọi hàm đệ quy. - Định nghĩa chuỗi, hiển thị, gọi hàm.