递归实现排列算法

递归实现排列算法

Content #

def permutations(S):
    if not S:
        return [[]]
    else:
        res, perms = [], permutations(S[1:])
        for i, _ in enumerate(S):
            for perm in perms:
                res.append(perm[:i] + [S[0]] + perm[i:])
        return res

将S[0]插入S[1:]的排列集合元素的每个位置。

From #