Python 不使用itertools生成组合
我需要修复/修改我这里的代码,以便输出如下: 代码如下:Python 不使用itertools生成组合,python,loops,generator,Python,Loops,Generator,我需要修复/修改我这里的代码,以便输出如下: 代码如下: num_list = [1, 2, 3] def combination_generator(num_list): pool = tuple(num_list) n = len(pool) if range(num_list) > n: return indices = list(range(num_list)) yield tuple(pool[i] for
num_list = [1, 2, 3]
def combination_generator(num_list):
pool = tuple(num_list)
n = len(pool)
if range(num_list) > n:
return
indices = list(range(num_list))
yield tuple(pool[i] for i in indices)
while True:
for i in reversed(range(num_list)):
if indices[i] != i + n - range(num_list):
break
else:
return
indices[i] += 1
for j in range(i+1, range(num_list)):
indices[j] = indices[j-1] + 1
yield tuple(pool[i] for i in indices)
print(combination_generator(num_list))
注意:我不允许使用任何进口产品。所以我不能用itertools。此外,如果添加到列表中,它还必须具有更多的值
有什么帮助吗?num\u list=[1,2,3]
def组合_发生器(属性):
属性=列表(属性)
如果len(attrs)由于需要将预期输出返回到集合列表中,如何使其返回集合?我还需要删除集合{},因为它未包含在预期值中。更新:我似乎找到了一个解决办法。。谢谢你。