打印数组所有排列 python
Posted answerme
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印数组所有排列 python相关的知识,希望对你有一定的参考价值。
本人.net一名,最近在看数据结构与算法分析,中间涉及的一些比较有意思的算法题,打算用python实现以下。选择python的原因,就是想熟悉一下python的语法,和pycharm基本的应用。
本篇,算法为:打印数组的所有排列可能。废话不多说,直接上代码。
1 #自动生成list 2 def creataList(n): 3 numlist=[]; 4 for i in range(n): 5 numlist.append(i); 6 7 return numlist; 8 #copy list排除某一个元素 9 def copewithout(lst,index): 10 newlst=[]; 11 for i in range(len(lst)): 12 if(i==index): 13 continue; 14 newlst.append(lst[i]); 15 return newlst; 16 17 #打印所有排列 18 def printallchildlist(numlist,index,printlist,length): 19 if(index==length-1): 20 printlist[index]=numlist[0]; 21 print(printlist); 22 else: 23 for i in range(len(numlist)): 24 printlist[index]=numlist[i]; 25 newnumlst=copewithout(numlist,i); 26 printallchildlist(newnumlst,index+1,printlist,length); 27 #主函数 28 def domain(num): 29 numlst=creataList(num); 30 printlst=creataList(num); 31 printallchildlist(numlst,0,printlst,num); 32 33 domain(3);
这是测试结果:
D:LearningPythonTestvenvScriptspython.exe D:/Learning/Python/Test/2.13.py [0, 1, 2] [0, 2, 1] [1, 0, 2] [1, 2, 0] [2, 0, 1] [2, 1, 0]
以上是关于打印数组所有排列 python的主要内容,如果未能解决你的问题,请参考以下文章
Python实现,输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接