我必须创建一个函数,它接受一个上界列表,并返回一个包含所有可能组合的上界列表。例如,输入列表[1,1,2]将产生:
[ [ 0 , 0 , 0 ] ,
[ 0 , 0 , 1 ] ,
[ 0 , 0 , 2 ] ,
[ 0 , 1 , 0 ] ,
[ 0 , 1 , 1 ] ,
[ 0 , 1 , 2 ] ,
[ 1 , 0 , 0 ] ,
[ 1 , 0 , 1 ] ,
[ 1 , 0 , 2 ] ,
[ 1 , 1 , 0 ] ,
[ 1 , 1 , 1 ] ,
[ 1 , 1 , 2 ] , ]
到目前为止,我有:
def bounded_lists(upper_bound):
start = [0] * len(upper_bound)
print(start)
while start != upper_bound:
for i in range(1, len(upper_bound)+ 1):
while start[-i] < upper_bound[-i]:
start[-i] = start[-i] + 1
print(start)
start[-i] = 0
break
但是,它只返回:
[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 1, 0]
[1, 0, 0]
您可以使用标准库
itertools
工作原理如下:
更新: 如果您对使用其他库感到不舒服,可以尝试递归地进行。你知道吗
相关问题 更多 >
编程相关推荐