permutations.py 文件源码

python
阅读 49 收藏 0 点赞 0 评论 0

项目:Leetcode 作者: staticor 项目源码 文件源码
def permutations(iterable):
    pool = list(iterable)
    n = len(pool)
    indices = list(range(n))
    cycles = list(range(n, n-r, -1))
    yield tuple(pool[i] for i in indices[:r])
    while n:
        for i in reversed(range(r)):
            cycles[i] -= 1
            if cycles[i] == 0:
                indices[i:] = indices[i+1:] + indices[i:i+1]
                cycles[i] = n - i
            else:
                j = cycles[i]
                indices[i], indices[-j] = indices[-j], indices[i]
                yield tuple(pool[i] for i in indices[:r])
                break
        else:
            return
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号