刚刚开始学习python,按照廖雪峰的网站看的,当前看到了函数这一节。结合数组操作,写了个非递归的全排列生成。原理是插入法,也就是在一个有n个元素的已有排列中,后加入的元素,依次在前,中,后的每一个位置插入,生成n+1个新的全排列。因为Python切割数组或者字符串,以及合并比较方便,所以,程序会节省很多代码。

 def getArrayInsertCharToStr(STR,CHAR):
arr =[]
s_len = len(STR)
index =0
while index <= s_len:
#分割字符串
arr.append(STR[:index]+CHAR+STR[index:s_len])
index = index + 1
return arr def getArrayInsertCharToArray(array,CHAR):
index = 0
re_array = []
while index < len(array):
re_array = re_array + getArrayInsertCharToStr(array[index],CHAR)
index = index + 1
return re_array def getPermutation(STR):
resultArr = [STR[0]]
for item in STR[1:]:
resultArr = getArrayInsertCharToArray(resultArr,item)
return resultArr print(getPermutation('abc'))

最新文章

  1. C# 之 DataReader 和 DataSet 的区别
  2. KVC&amp;&amp;&amp;KVO
  3. k8s DNS 服务发现的一个坑
  4. mysql 基本操作语句
  5. 为什么获取的System.Web.HttpContext.Current值为null,HttpContext对象为null时如何获取程序(站点)的根目录
  6. rational rose 顺序图的消息加数字
  7. CentOS6.4 安装nmon
  8. oracle中截取某个字符前面和后面的值
  9. Java内部类this$0字段产生的一个bug
  10. Linux 命令、Shell 杂货铺
  11. (转载)PHP array_merge() 函数
  12. 如何制作一个类似Tiny Wings的游戏(2) Cocos2d-x 2.1.4
  13. C - 哗啦啦村的扩建
  14. mysql-笔记 架构
  15. PC逆向之代码还原技术,第四讲汇编中减法的代码还原
  16. linux中ping带时间及打印内容到文件
  17. Bugku-CTF之flag在index里
  18. Spring+SpringMVC+mybatis整合以及注解的使用(三)
  19. db2命令参数with ur
  20. Qt网络编程QTcpServer和QTcpSocket的理解

热门文章

  1. Windows Server 2008 R2 域控服务器运行nslookup命令默认服务器显示 UnKnown
  2. Java实现插入排序
  3. T4
  4. C# Word生成PDF
  5. 【转】fiddler-http协议调试代理工具
  6. Java网络编程之流——流、过滤器、阅读器和书写器
  7. Hadoop的核心组件和生态圈
  8. struts 文件上传
  9. asp.net5 操作Cookie
  10. iOS学习——制作一个小型加法计算器