我将尝试生成一个数字列表的所有n项组合,并保持数字顺序。例如,如果列表是:
[1,2,3,4]
长度为3的有序组合是:
[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]
需要明确的是,我必须保持数字的顺序,因此[1,4,2]不是期望得到的结果。
是否有一个函数可以做到这一点,或者有一种快速算法可以完成它?实际列表长度为111,我将选择100个项目。谢谢。
[1,2,3,4]
长度为3的有序组合是:
[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]
需要明确的是,我必须保持数字的顺序,因此[1,4,2]不是期望得到的结果。
是否有一个函数可以做到这一点,或者有一种快速算法可以完成它?实际列表长度为111,我将选择100个项目。谢谢。
你是否只是想寻找给定长度为n的列表的所有组合?如果是,你可以使用itertools中的combinations。无论哪种方式,你都可能需要使用itertools。
from itertools import combinations
numbers = [1,2,3,4]
for item in combinations(numbers, 3):
print sorted(item)