我必须实现一个递归函数,它只收到两个参数:'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
我想到了类似的东西,但它总是返回一个空列表...所以我想我需要了解如何在递归中一致地保存数据结构 .
谢谢 .