Python 递归生成彩票号码组合

-1 投票
1 回答
1079 浏览
提问于 2025-04-30 20:13

我的问题是,在这个彩票中,你必须从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

撰写回答