python回溯法实现数组全排列输出实例分析

yipeiwu_com7年前Python基础

本文实例讲述了python回溯法实现数组全排列输出的方法。分享给大家供大家参考。具体分析如下:

全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

from sys import stdout
#code from //www.jb51.net/
def perm(li, start, end):
  if(start == end):
    for elem in li:
      stdout.write(elem)
    print ''
  else:
    for i in range(start, end):
      li[start], li[i] = li[i], li[start]
      perm(li, start+1, end)
      li[i], li[start] = li[start], li[i]
if __name__ == '__main__':
  li = ['a','b','c','d']
  perm(li, 0, len(li))

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python实现爬山算法的思路详解

python实现爬山算法的思路详解

问题 找图中函数在区间[5,8]的最大值  重点思路 爬山算法会收敛到局部最优,解决办法是初始值在定义域上随机取乱数100次,总不可能100次都那么倒霉。 实现 imp...

python中下标和切片的使用方法解析

下标 所谓下标就是编号,就好比超市中存储柜的编号,通过这个编号就能找到相应的存储空间。 Python中字符串,列表,元祖均支持下标索引。 例如: # 如果想取出部分字符,可使用下标...

Python定时任务工具之APScheduler使用方式

APScheduler (advanceded python scheduler)是一款Python开发的定时任务工具。 文档地址 apscheduler.readthedoc...

python logging模块书写日志以及日志分割详解

python logging模块书写日志以及日志分割详解

本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割 import logging,datetime,logging.hand...

Python操作SQLite数据库过程解析

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。...