Python 递归生成彩票号码组合
我的问题是,在这个彩票中,你必须从1到49的数字中选择6个数字。我需要使用递归而不使用itertools来完成这个任务。我真的不知道该如何继续写我的代码。
示例输入:1 2 3 4 5 6 7
输出:
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7
所以我已经有了基本情况和其他所有部分,除了else
部分:
def lottery( number ):
if len( number ) == 6:
return number
else:
我试过这个,但它不工作:
else:
output = list()
for i in range( len( numbers ) ):
rem = lotto( numbers[i+1:] )
output.append( numbers[ :i] + rem )
return output
1 个回答
1
我觉得你的变量命名有点问题。你可以试试这样:
def lottery(numbers):
if len(numbers) == 6:
return numbers
output = list()
for i in range(len(numbers)):
rem = numbers[i+1:]
output.append(numbers[:i]+rem)
return output