我必须实现一个递归函数,它只收到两个参数:'n'和'k',其中n是从'0'到'n-1'的集合的长度,k是子集的长度原始集合中的不同元素 . 我们必须最后返回一个列表列表,其中包含k长度的所有子列表 . 我不知道要克服的扭曲是我们不能使用其他参数,如列表,元组,集等等......

所以我不知道如何在递归中“保存”所有子集的列表而没有“丢失”的细节 .

def ret_k_subset(n, k):
    if n >= 0 and k >= 0:
        lst = []
        if len(lst) == k:
            return lst
        else:
            for n in range(n):
                return lst + ret_k_subset(n, k)
    return lst

我想到了类似的东西,但它总是返回一个空列表...所以我想我需要了解如何在递归中一致地保存数据结构 .

谢谢 .