Python 使用列表理解和递归对列表的所有子集求和

Python 使用列表理解和递归对列表的所有子集求和,python,python-3.x,recursion,Python,Python 3.x,Recursion,我试图编写一个程序,返回一个列表的所有子集和的集合。我必须使用列表理解和递归 例如: [1,2,3,10] return set([0,1,2,3,4,5,6,100,101,102,103,104,105,106]) 我写代码: def function(L): if len(L) == 0: return [] return list((L[index] + rest) for index in range(len(L)) for rest in funct

我试图编写一个程序,返回一个列表的所有子集和的集合。我必须使用列表理解和递归

例如:

[1,2,3,10]
return set([0,1,2,3,4,5,6,100,101,102,103,104,105,106])
我写代码:

def function(L):
    if len(L) == 0:
        return []
    return list((L[index] + rest) for index in range(len(L)) for rest in function(L[:index])+L[index+1:])
此代码返回子集之和,但仅返回2个或更多基本子集。
示例
[1,2,3,4100]

return[3,4,5,610110102103104105106]

这一变化似乎给出了正确的答案:

def function(L):
 if len(L) == 0:return []
 return L+list((L[index] + rest) for index in range(len(L)) for rest in function(L[:index])+L[index+1:])

一门课程有什么大的编程作业吗?在过去的两天里,我已经看过这个问题至少三次了。是的,这是课程的一部分,但不是更大问题的一部分。你能编辑一下你当前问题的最后一句吗。“一组和但没有一个或没有一个元素之和”程序不考虑0和1个元素子集,结果中没有1个元素或0个元素子集和?