Python程序递归中避免使用不可变数据类型
递归解题:
global ins, seclst
seclst = []
def fun(k,lst):
"""这里的lst必须是str类型的数据,str是不可变数据类型,执行lst += str(k)后,会产生新的str对象来存储字符串;
但是list类型是可变数据类型,执行lst.append(str(k))后,不会产生新的list对象。"""
if k == 10:
seclst.append(lst)
return
if ins[k] == 0:
fun(k+1,lst)
lst += str(k)
fun(k+1,lst)
if __name__ == "__main__":
ins = list(map(int,input().strip().split()))
lst = ''
fun(0,lst)
seclst.sort()
for x in seclst:
print(x)