Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python sinh tất cả hoán vị độ dài r của chuỗi


Cho chuỗi s và số r. Sinh tất cả hoán vị (permutations) độ dài r từ các ký tự của s. Sử dụng itertools.permutations.

Ví dụ: s = "HELLO", r = 3 → list các chuỗi độ dài 3 (có trùng do 'L' xuất hiện 2 lần).

Ví dụ mã nguồn

from itertools import permutations

def solve(s, r):
    vals = list(permutations(s, r))
    res = [''.join(x) for x in vals]
    return res

s = "HELLO"
r = 3
print(solve(s, r))

Đầu vào / Đầu ra

Input:  "HELLO", 2
Output: ['HE', 'HL', 'HL', 'HO', 'EH', 'EL', 'EL', 'EO', 'LH', 'LL', 'LO', 'LE', 'LL', 'LE', 'LO', 'OH', 'OL', 'OL', 'OE']