python非递归全排列实现方法


Posted in Python onApril 10, 2017

刚刚开始学习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'))

以上这篇python非递归全排列实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 字符串与二进制串的相互转换示例
Jul 23 Python
python 堆和优先队列的使用详解
Mar 05 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
Pycharm远程调试原理及具体配置详解
Aug 08 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
django 读取图片到页面实例
Mar 27 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Python代码注释规范代码实例解析
Aug 14 Python
用python写PDF转换器的实现
Oct 29 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 #Python
Python贪吃蛇游戏编写代码
Oct 26 #Python
OpenCV实现人脸识别
Apr 07 #Python
python使用opencv进行人脸识别
Apr 07 #Python
Python 实现链表实例代码
Apr 07 #Python
python中如何使用朴素贝叶斯算法
Apr 06 #Python
python获取当前运行函数名称的方法实例代码
Apr 06 #Python
You might like
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
在Python中使用HTML模版的教程
2015/04/29 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
python中自带的三个装饰器的实现
2019/11/08 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
应届生学校辅导员求职信
2013/11/07 职场文书
求职推荐信范文
2013/12/01 职场文书
单位创先争优活动方案
2014/01/26 职场文书
女娲补天教学反思
2014/02/05 职场文书
好的促销活动方案
2014/08/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
2014年教师工作总结
2014/11/10 职场文书
活动总结模板大全
2015/05/11 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
关于EntityWrapper的in用法
2022/03/22 Java/Android