我正在尝试递归地创建给定字符串的所有子集。给定 string = 'aab',我们为不同的字符生成所有子集。答案是:["", "b", "a", "ab", "ba", "a", "ab", "ba", "aa", "aa", "aab", "aab", "aba", "aba", "baa", "baa"]。我一直在研究几个解决方案,比如这个,
但我试图让函数接受一个变量——只接受字符串并使用它,但不知道怎么做。我也一直在研究类似问题的解决方案,但是由于它处理的是列表而不是字符串,因此我似乎在将其转换为接受和生成字符串时遇到了一些麻烦。这是我的代码,在此示例中,我无法将 str 连接到列表。因此我的问题。
我编辑了输入和输出。
def gen_all_strings(word):
if len(word) == 0:
return ''
rest = gen_all_strings(word[1:])
return rest + [[ + word[0]] + dummy for dummy in rest]