我无法组合系数。基本上我有一个项目列表,并希望为它们获取所有独特的系数组合,如下所示:
dog:1 cat:1
dog:2 cat:1
dog:3 cat:1
dog:1 cat:2
dog:2 cat:2
我不太确定这样做的最佳方法(动态编程、递归、蛮力等),所以我尝试从递归开始:
list = ["dog", "cat"]
coeff = [1] * len(list)
main_queue = []
def recursion(k, list):
for item in list[0:k-1]:
for data in range(5):
coeff_temp = coeff
coeff_temp[k] = data
main_queue.append(coeff_temp)
#print item, data
if k == (len(list)-1):
return
else:
recursion(k+1, list)
recursion(0, list)
print "*" * 30
for x in main_queue:
print x
输出是:
******************************
[4, 1]
[4, 1]
[4, 1]
[4, 1]
[4, 1]
它只会更改我创建的主队列中的最后一个条目。我究竟做错了什么?
ps这是最好的方法吗(范围在1-5之间,列表中大约有20-30个项目..我最好使用动态编程)?