全排列 (python)

python写的,想了一上午只能写成这样,遍历是都遍历过了,但感觉少了点什么

def qpl(sz, chuanru):
    if len(sz) == 1:
        print(chuanru, end='')
        print(sz[0])
        return
    else:
        for x in range(0, len(sz)):
            if chuanru:
                print(chuanru, end='')
            if x == 0:
                # print(sz[0], end='')
                new_array = sz[1:]
                qpl(new_array, sz[0])
            else:
                temp = sz[0]
                sz[0] = sz[x]
                sz[x] = temp
                # print(sz[0], end='')
                new_array = sz[1:]
                qpl(new_array, sz[0])


def main():
    a = [1, 2, 3, 4]
    qpl(a, chuanru=None)


main()

修改了一下,写出来了,很感动,把输出想成一次性的,就好了

def qpl(sz, index):
    if len(sz) == index:
        print(sz)
        return
    else:
        for x in range(index, len(sz)):
            if x == 0:
                new_array = sz[:]
                qpl(new_array, index + 1)
            else:
                temp = sz[0]
                sz[0] = sz[x]
                sz[x] = temp
                new_array = sz[:]
                qpl(new_array, index + 1)


def main():
    a = [1, 2, 3, 4]
    qpl(a, 0)


main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、异同对比选择1、Python和ruby的相同点: * 都强调语法简单,都具有更一般的表达方式。python是缩...
    沃伦盖茨阅读 4,173评论 2 24
  • 出门在外,难免遇到找不到路的情况。尤其是在外地旅行的时候,这时候地图类的APP就显得尤为重要了。 小挚本身不是一个...
    Zerlinda小挚阅读 310评论 0 0
  • 生活不能等待别人来安排,要自己去争取和奋斗;而不论其结果是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场。有了...
    汪宠喵匠阅读 1,638评论 10 21