浅谈python输出列表元素的所有排列形式


Posted in Python onFebruary 26, 2020

例如:

[‘a', ‘b', ‘c'] 输出 [‘a', ‘b', ‘c'] [‘a', ‘c', ‘b'] [‘b', ‘a', ‘c'] [‘b', ‘c', ‘a'] [‘c', ‘a', ‘b'] [‘c', ‘b', ‘a']

方法一:利用递归的方式实现

def permutation(li):
  len_list = len(li)
  if len_list == 1:
    return li

  result = []
  for i in range(len_list):
    res_list = li[:i] + li[i+1:]
    s = li[i]
    per_result = permutation(res_list)
    if len(per_result) == 1:
      result.append(li[i:i + 1] + per_result)
    else:
      result += [[s] + j for j in per_result]
  return result

方法二:利用python自带的模块

import itertools

def permutation(li):
  print(list(itertools.permutations(li)))

补充拓展:python实现四个数字的全排列

首先我们使用常规做法,循环交换完成。

lst = [1, 3, 5, 8]

for i in range(0, len(lst)):
  lst[i], lst[0] = lst[0], lst[i]
  for j in range(1, len(lst)):
    lst[j], lst[1] = lst[1], lst[j]
    for h in range(2, len(lst)):
      print(lst)
    lst[j], lst[1] = lst[1], lst[j]
  lst[i], lst[0] = lst[0], lst[i]

如果列表较长,元素较多,以上常规方法实现起来就比较吃力了,以下我们采用递归方式实现。

def permutations(position):
  if position == len(lst) - 1:
    print(lst)
  else:
    for index in range(position, len(lst)):
      lst[index], lst[position] = lst[position], lst[index]
      permutations(position+1)
      lst[index], lst[position] = lst[position], lst[index]
permutations(0)

以上这篇浅谈python输出列表元素的所有排列形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
布同 统计英文单词的个数的python代码
Mar 13 Python
Python实例分享:快速查找出被挂马的文件
Jun 08 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
Sanic框架配置操作分析
Jul 17 Python
Linux下python3.7.0安装教程
Jul 30 Python
python requests.post带head和body的实例
Jan 02 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
对python 自定义协议的方法详解
Feb 13 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
通过实例学习Python Excel操作
Jan 06 Python
Python用requests库爬取返回为空的解决办法
Feb 21 Python
Python Pandas知识点之缺失值处理详解
May 11 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 #Python
python——全排列数的生成方式
Feb 26 #Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 #Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 #Python
python自动点赞功能的实现思路
Feb 26 #Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 #Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 #Python
You might like
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
js实现的牛顿摆效果
2015/03/31 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python各层级目录下import方法代码实例
2020/01/20 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
应届生煤化工求职信
2013/10/21 职场文书
大学生优秀的自我评价分享
2013/10/22 职场文书
日语专业推荐信
2013/11/12 职场文书
大学校庆邀请函
2014/01/11 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
共产党员公开承诺书
2014/03/25 职场文书
在职证明格式样本
2015/06/15 职场文书
七一活动主持词
2015/06/29 职场文书
地震捐款简报
2015/07/21 职场文书
春节随笔
2015/08/15 职场文书