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

yipeiwu_com5年前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程序设计有所帮助。

相关文章

Django 大文件下载实现过程解析

django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Response对象中: def simple_file_download(req...

Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

本文实例讲述了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)。分享给大家供大家参考,具体如下: demo.py(类方法,@classm...

Python基于PycURL自动处理cookie的方法

本文实例讲述了Python基于PycURL自动处理cookie的方法。分享给大家供大家参考。具体如下: import pycurl import StringIO url = "ht...

PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上

PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上

Django2.1 + Python3.6 + nginx + uwsgi 部署到Ubuntu18.04 材料准备 准备一个Django项目准备一台Ubuntu18.04的主机 ssh连...

使用python验证代理ip是否可用的实现方法

在使用爬虫爬取网络数据时,如果长时间对一个网站进行抓取时可能会遇到IP被封的情况,这种情况可以使用代理更换ip来突破服务器封IP的限制。 随手在百度上搜索免费代理IP,可以得到一系列的网...