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中针对函数处理的特殊方法
Mar 06 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
Python随机读取文件实现实例
May 25 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
python 计算一个字符串中所有数字的和实例
Jun 11 Python
Python 硬币兑换问题
Jul 29 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 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执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
PHP内置加密函数详解
2016/11/20 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
python简单猜数游戏实例
2015/07/09 Python
Python解析树及树的遍历
2016/02/03 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
python list格式数据excel导出方法
2018/10/31 Python
Python 面向对象部分知识点小结
2020/03/09 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
解决margin 外边距合并问题
2019/07/03 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
如何保障Web服务器安全
2014/05/05 面试题
聊城大学毕业生自荐书
2014/02/01 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python