如何在python中对某些给定字母进行深度排列?

时间:2018-10-14 16:50:35

标签: python permutation

所以我一直在尝试使用置换库在python中置换一些字母,但是我看到它只返回给定的字母,所以没有字母是重复的,如果我有字母a,b和c,置换将是如下。

abc
acb
bac
bca
cab
cba

现在我一直在尝试一种我认为更深入的方式,所以我喜欢它。

aaa 
aab 
aac 
aba 
abc
abc
aca

在python中有正确的方法吗? 可能是我错了,但这就是我的看法。

求解后编辑:

想知道我尝试了什么的人们使用了itertools库的置换部分:

>>>print([x for x in itertools.permutations('1234')])
>>>[('1', '2', '3', '4'), ('1', '2', '4', '3'), ('1', '3', '2', '4') ... ]

1 个答案:

答案 0 :(得分:0)

也许您想要类似itertools.product

的东西
from itertools import product

print(list(product('abc', repeat = 3)))
# [('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'a', 'c'), ('a', 'b', 'a'), ('a', 'b', 'b'), ('a', 'b', 'c'), ('a', 'c', 'a'), ('a', 'c', 'b'), ('a', 'c', 'c'), ('b', 'a', 'a'), ('b', 'a', 'b'), ('b', 'a', 'c'), ('b', 'b', 'a'), ('b', 'b', 'b'), ('b', 'b', 'c'), ('b', 'c', 'a'), ('b', 'c', 'b'), ('b', 'c', 'c'), ('c', 'a', 'a'), ('c', 'a', 'b'), ('c', 'a', 'c'), ('c', 'b', 'a'), ('c', 'b', 'b'), ('c', 'b', 'c'), ('c', 'c', 'a'), ('c', 'c', 'b'), ('c', 'c', 'c')]