获取列表python的所有有序组合

时间:2014-09-03 18:02:55

标签: python combinations itertools

我试图在保持数字顺序的同时生成数字列表的所有n项组合。例如,如果列表是

[1,2,3,4]

长度为3的有序组合将是:

[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]

要明确的是,我必须维持数字顺序,因此[1,4,2]不会是理想的结果。

有没有这样做的功能,还是一个可以完成它的快速算法?实际列表是111,我将选择100项。感谢。

1 个答案:

答案 0 :(得分:6)

您是否只是寻找给定长度n列表的所有组合?如果是这样,你可以使用itertools的组合。无论哪种方式,你都可能想要使用itertools。

from itertools import combinations

numbers = [1,2,3,4]
for item in combinations(numbers, 3):
    print sorted(item)