递归生成模式

Jui*_*icy 2 python recursion permutation

我正在尝试在列表中生成所有排列.我知道有内置函数,但我想用递归函数自己做.我试图理解为什么我的尝试不起作用:

chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

def recurse(n, value):
    if n > 0:
        for c in chars:
            value += c
            recurse(n-1, value)
    else:
        print value
        return

nchars = 2
recurse(nchars, '')
Run Code Online (Sandbox Code Playgroud)

在我看来,我的递归应该在两次迭代后停止(nchars = 2)但它会继续下去.我会发布当前的输出,但这是漫长而凌乱的方式.预期产出将是:

00
01
02
03
...
zx
zy
zz
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 7

    for c in chars:
        value += c
        recurse(n-1, value)
Run Code Online (Sandbox Code Playgroud)

此循环每个递归级别运行62次,因此value将增长并增长到最大大小为124.要避免此累积效应,请尝试:

    for c in chars:
        recurse(n-1, value+c)
Run Code Online (Sandbox Code Playgroud)