Python程序递归中避免使用不可变数据类型

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)