我很难把系数组合起来。基本上我有一个项目清单,想为它们获得所有独特的系数组合,比如:
dog:1 cat:1
dog:2 cat:1
dog:3 cat:1
dog:1 cat:2
dog:2 cat:2
我不确定这样做的最佳方式(动力编程、循环、brute force、etc.),
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]
它只改变了我主队列中最后一个条目 。 我做错什么了?
p.s. 这是这样做的最佳方式吗(范围在1-5之间,清单中将有大约20-30个项目.我是否最好使用动态编程)?