def printson(arr,i,res):
#print(i)
if i == len(arr):
print(res)
return
printson(arr,i+1,res)
printson(arr,i+1,res+arr[i])
if __name__ == "__main__":
arr = "abcd"
printson(arr,0,"")
代码解释:
比如要打印abc的子序列,每次有两个选择,选择当前字符,不选择当前字符,递归下去,相当于一颗二叉树所有的结果,i+1意味着向前进一步,最后二叉树的所有叶节点我为结果。当 i 增加到arr长度时,即打印此时每一步所选择的答案。