我有一个清单
a = ['a', 'b', 'c']
如何从列表中获取重复的所有组合,而不使用它们。 最终输出将是:
[('a', 'b', 'c'),
('a', 'c', 'b'),
('b', 'a', 'c'),
('b', 'c', 'a'),
('c', 'a', 'b'),
('c', 'b', 'a')]
答案 0 :(得分:4)
>>> import itertools
>>> a = ['a', 'b', 'c']
>>> list(itertools.permutations(a))
[('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
答案 1 :(得分:0)
使用permutations
itertools
函数
from itertools import permutations
x = list(itertools.permutations(a))
以上列表不会按字典顺序排序。如果给定的输入列表已排序,则将对输出列表进行排序。否则,您必须使用x.sort()