给定一个数字列表,找出与 100 相加的特定长度的所有排列

时间:2021-03-13 11:35:54

标签: python list permutation

给定一个数字列表 %boots002% %boots003%,我想在 python 上找到总和为 100 的那些数字的所有排列。

但是,我希望能够多次使用列表中的值,并且我希望能够选择排列的长度。

例如,如果排列的长度为 3,我将返回:list = [0,1,2,10,21,25,30,33,34,35]

我已经能够为长度 3 执行此操作。但是,我找到了总和为 100 的 3 个数字的所有组合,然后通过该组合进行过滤以删除包含原始列表之外的数字的解决方案。

>

问题是我不能对长度为 4、5、6 的排列采用这种方法,因为有更多的组合。

谢谢

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了您的问题,但试试这个:

from itertools import product

def special_permutation(lst, rno, suma):
  results = []
  for c in product(lst, repeat = rno):
      if sum(c) == suma:
        results.append(c)
  return results
相关问题