查找长度为p python的列表的n个排列

时间:2018-09-16 13:32:42

标签: python permutation itertools

所以我有大约40个项目的数组,需要查找列表的n个排列。我知道我可以使用itertools.permutations,但是那将给我全部40个!不同的订购将需要更长的时间。

有没有一种方法可以创建列表的n个排列?

1 个答案:

答案 0 :(得分:0)

itertools.permutations为您提供了对列表排列的迭代器。您可以一一提取值,该函数不会预先计算任何内容。

如果只希望在没有任何进一步约束的情况下产生第一个n排列,请islice作为permutations的结果。

>>> from itertools import permutations, islice
>>> perms = islice(permutations(yourlist), n)

仅当您通过perms循环或通过创建容器(forlist,{{1 }},...)。