创建具有所有可能排序的最大长度K的N个列表

时间:2018-05-23 09:12:29

标签: python permutation itertools

给出Python中长度为N的列表:

a = [A,B,C]

我想创建所有可能的列表组合,并设置最大长度(在本例中为2)。元素的顺序也很重要。这就是我想要的结果:

[A,B],[C]
[B,A],[C]

[A,C],[B]
[C,A],[B]

[B,C],[A]
[C,B],[A]

我认为permutations function是一个很好的起点。但我无法弄清楚如何得到确切的结果。

1 个答案:

答案 0 :(得分:1)

试试这个:

a = ['A', 'B', 'C']
for v in permutations(a):
    for i in range(0, len(v), 2):
        print v[i:i+2]
    print '-'*10

输出:

('A', 'B')
('C',)
----------
('A', 'C')
('B',)
----------
('B', 'A')
('C',)
----------
('B', 'C')
('A',)
----------
('C', 'A')
('B',)
----------
('C', 'B')
('A',)
----------