string = 'abc'
。所述字符串的所有子集都是:[a b c ab abc ac bc '(empty string)']
我需要使用递归函数生成所有这些子集,但我无法弄清楚如何。
答案 0 :(得分:0)
对于每个重复使用的char而不使用
s = 'abc'
def recur(s, prefix, out):
if len(s) > 0:
recur(s[1:], prefix+s[0], out)
recur(s[1:], prefix, out)
out.append(prefix+s[0])
return out
print recur(s, '', [''])
输出
['', 'abc', 'ac', 'ab', 'bc', 'c', 'b', 'a']
答案 1 :(得分:0)
只是为了踢,你可以把它写成一行lambda。
lambda s: { s[j:(j+i)] for i in range(len(s)+1) for j in range(len(s)-i+1) }