嘿,我有一个列表,我希望得到它的所有不同的排列,即 [A,B,C]。
我想要它的所有不同组合。像[A,C,B],[B,A,C],[B,A,C],[C,A,B]和[C,B,A]我尝试使用itertools.combinations,我得到所有组合都不是使用所有字母的组合。
matriks = ["A","B","C"]
combs=[]
for i in xrange(1, len(matriks)+1):
els = [list(x) for x in itertools.combinations(matriks, i)]
combs.append(els)
print(combs)
这给出了以下输出
[[['A'], ['B'], ['C']], [['A', 'B'], ['A', 'C'], ['B', 'C']], [['A', 'B', 'C']]]
答案 0 :(得分:5)
您只需使用itertools.permutations
:
>>> from itertools import permutations
>>>
>>> l = ["A","B","C"]
>>>
>>> list(permutations(l))
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]