剑指offer的第38题的拓展题:
我在网上没有找到python版的代码实现,所有自己写了一个,有不对的地方欢迎指正。
def StringCombination(s):
res = []
n = len(s)
def recursive(string, m):
if not string:
return
if m == 1:
res.append(string[0])
else:
for i in range(1, len(string)):
if i + m - 1 <= len(string):
res.append(string[0] + string[i:i + m - 1])
recursive(string[1:], m)
for m in range(1, n+1):
recursive(s, m)
return res
if __name__ == '__main__':
print(StringCombination('abcd'))
# ['a', 'b', 'c', 'd', 'ab', 'ac', 'ad', 'bc', 'bd', 'cd', 'abc', 'acd', 'bcd', 'abcd']