创建字符串的所有可能变体 Python

Create all possible variations of string Python

我遇到了一个问题,我需要创建一个字符串所有可能变体的列表。我已经尝试过 itertools 的一些方法,比如 [''.join(i) for i in itertools.permutations('abc')]

(comb = [''.join(i) for i in itertools.combinations_with_replacement('abc',3)] 但他们的结果有点不同,正如我所预料的那样。我需要所有变体,所以排列不是实现它的方法。与替换的组合非常好,但是缺少一些子序列 这个操作的结果是:

aab
aac
abb
abc
acc
bbb
bbc
bcc
ccc

但我还需要输出'aba','acb' 'bab',等等(需要涵盖所有可能的变体) 也许我错过了 itertools 中的另一种方法,这对我有帮助吗? 感谢您的帮助和建议

您使用 itertools.product 和与字符串大小一样多的迭代器:

from itertools import product

s = 'abc'
ss = [s] * len(s)
for r in product(*ss):
    print(''.join(r))

aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc