我试图解决这个问题一个多月了。我有一个数字列表和这些变量:
list_num = [1, 1, 2, 3, 5, 6, 1, 1, 3, 4, 4]
#x is number of numbers in combination eg. if x = 5 combiantions will look like this [n,n,n,n,n], where n is possible member of list _num
x = 5
#y is a sum of numbers inside combination
y = 10
我需要以组合数字x
的数量和组合数字y
的总和的方式生成这些数字的所有可能组合,还list_num
必须考虑内部重复的数量。
我可以通过生成所有可能的组合并消除不是由我的规则确定的组合来做到这一点,但这种方法很混乱,我不能将它与大量数据一起使用。在我的原始程序list_num
中可以有数百个数字和变量x
,并且y
可以有很大的值。
此示例的几个组合:
comb1 = [1,1,2,3,3], x = 5, y = 10
comb2 = [1,1,1,2,5], x = 5, y = 10
comb3 = [1,1,1,1,6], x = 5, y = 10
...
我会很感激一些新的想法,我没有任何剩余:)