例如:当计算旅行推销员问题的强力解决方案时,您不需要所有的排列,只需要排列集的前半部分。(下半场都是上半场的逆转(。
基本上,我试图得到这套:
iter_a = itertools.permutations([3, 4, 5, 2, 1, 6])
list_a = list(iter_a)
desired_set = list_a[:len(list_a)//2]
以最理智的方式。
因为后半部分的排列是反转的,所以只能将第一个成员最低的成员添加到集合中:
from itertools import permutations
iter_a = permutations([3, 4, 5, 2, 1, 6])
desired_set = set()
for it in iter_a:
if it[0] < it[-1]:
desired_set.add (it)