所以我有大约40个项目的数组,需要查找列表的n个排列。我知道我可以使用itertools.permutations,但是那将给我全部40个!不同的订购将需要更长的时间。
有没有一种方法可以创建列表的n个排列?
答案 0 :(得分:0)
itertools.permutations
为您提供了对列表排列的迭代器。您可以一一提取值,该函数不会预先计算任何内容。
如果只希望在没有任何进一步约束的情况下产生第一个n
排列,请islice
作为permutations
的结果。
>>> from itertools import permutations, islice
>>> perms = islice(permutations(yourlist), n)
仅当您通过perms
循环或通过创建容器(for
,list
,{{1 }},...)。