Python 如何在不使用任何导入的情况下不断地向字符串添加字母,直到递归结束?

Python 如何在不使用任何导入的情况下不断地向字符串添加字母,直到递归结束?,python,recursion,Python,Recursion,嗨,我在想如何在任何位置向字符串中添加字母 例如,我想把所有的“abc”相加,所以我递归它,它从“”开始 然后['']->['c']->['bc','cb']->['abc','bac','bca','acb','cab','cba'] 如何将'b'添加到字符串的第一个位置和'c'的最后一个位置 到目前为止,我只是一直在测试,我得到了这个,我不知道如何进一步进行 def permutation(x): if x == '': return [''] a=x[0]

嗨,我在想如何在任何位置向字符串中添加字母

例如,我想把所有的“abc”相加,所以我递归它,它从“”开始

然后
['']->['c']->['bc','cb']->['abc','bac','bca','acb','cab','cba']

如何将
'b'
添加到字符串的第一个位置和
'c'
的最后一个位置

到目前为止,我只是一直在测试,我得到了这个,我不知道如何进一步进行

def permutation(x):
    if x == '':
        return ['']

    a=x[0]
    b=permutation(x[1:])
    c=[]
    for i in b:
        for j in range(len(i)):
            d= list(i)
            d.append(a)
permutation('abc')

这对于递归来说是一个可怕的问题,有什么特别的原因让你特别想要递归吗?绝对没有理由用计算机来解决这个问题recursion@ParitoshSingh我不认为这个问题对递归来说是可怕的,但这个例子真的很奇怪。@funnydman这里的递归方法效率非常低,递归应该只用于有意义的“分而治之”的问题。这是一个简单的迭代案例,分而治之会严重阻碍获得正确解的能力。(特别是如果你完全避免迭代,请注意这将需要弄清楚如何在没有循环的情况下在特定插槽中匹配字符)@Paritossingh不要局限于最佳解决方案,如果OP想解决递归问题,那么就这样帮助他们,你也可以添加其他解决方案,如果你认为递归无法实现,那么就这么说,只是不要限制这种想法