所需要的是一个返回列表的函数,其中包含输入列表中元素的所有可能组合,但以函数样式编写。也就是说,没有赋值,循环......欢迎递归。
例如,我有一个类似的,但它不返回所有值:
def f (s, n):
return [s[:n+1]]+[s[n+1:]]
def f2 (s, n):
return [] if n > len(s)-1 else f(s,n) + f2(s,n+1)
print(f2([1,2,3,0))
回报:
[[1], [2, 3], [1, 2], [3], [1, 2, 3], []]
我需要:
[[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]
效率不高,但有效:
以防万一:
for这不是一个循环,而是一个列表生成器,即 功能设计。但是如果你真的想要,你可以用map.