我试图在保持数字顺序的同时生成数字列表的所有n项组合。例如,如果列表是
[1,2,3,4]
长度为3的有序组合将是:
[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]
要明确的是,我必须维持数字顺序,因此[1,4,2]不会是理想的结果。
有没有这样做的功能,还是一个可以完成它的快速算法?实际列表是111,我将选择100项。感谢。
答案 0 :(得分:6)
您是否只是寻找给定长度n列表的所有组合?如果是这样,你可以使用itertools的组合。无论哪种方式,你都可能想要使用itertools。
from itertools import combinations
numbers = [1,2,3,4]
for item in combinations(numbers, 3):
print sorted(item)