python使用遞歸解決全排列數(shù)字示例
第一種方法:遞歸
def perms(elements):
if len(elements) <=1:
yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
for item in list(perms([1, 2, 3,4])):
print item
結(jié)果
[1, 2, 3, 4]
[2, 1, 3, 4]
[2, 3, 1, 4]
[2, 3, 4, 1]
[1, 3, 2, 4]
[3, 1, 2, 4]
[3, 2, 1, 4]
[3, 2, 4, 1]
[1, 3, 4, 2]
[3, 1, 4, 2]
[3, 4, 1, 2]
[3, 4, 2, 1]
[1, 2, 4, 3]
[2, 1, 4, 3]
[2, 4, 1, 3]
[2, 4, 3, 1]
[1, 4, 2, 3]
[4, 1, 2, 3]
[4, 2, 1, 3]
[4, 2, 3, 1]
[1, 4, 3, 2]
[4, 1, 3, 2]
[4, 3, 1, 2]
[4, 3, 2, 1]
第二種方法:python標(biāo)準(zhǔn)庫(kù)
import itertools
print list(itertools.permutations([1, 2, 3,4],3))
源代碼如下:
#coding:utf-8
import itertools
print list(itertools.permutations([1, 2, 3,4],3))
def perms(elements):
if len(elements) <=1:
yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
yield perm[:i] + elements[0:1] + perm[i:]
for item in list(perms([1, 2, 3,4])):
print item
相關(guān)文章
使用python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo
下面小編就為大家分享一篇使用python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Python利用sched模塊實(shí)現(xiàn)定時(shí)任務(wù)
今天我們來(lái)介紹一下Python當(dāng)中的定時(shí)任務(wù),主要用到的模塊是sched,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04Python檢測(cè)生僻字的實(shí)現(xiàn)方法
最近在工作中碰到一個(gè)需求,要求檢測(cè)字段是否包含生僻字以及一些非法字符如 ~!@#$%^&*。通過(guò)網(wǎng)上的查找資料解決了,現(xiàn)在將解決的過(guò)程和示例代碼分享給大家,有需要的可以參考借鑒。下面來(lái)一起看看吧。2016-10-10python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法
這篇文章主要介紹了python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Matplotlib繪圖基礎(chǔ)之文本標(biāo)注詳解
Matplotlib?文本和標(biāo)注可以為數(shù)據(jù)和圖形之間提供額外的信息,幫助觀(guān)察者更好地理解數(shù)據(jù)和圖形的含義,下面就將通過(guò)示例依次介紹文本和標(biāo)注的常用使用方式2023-08-08python tkiner實(shí)現(xiàn) 一個(gè)小小的圖片翻頁(yè)功能的示例代碼
這篇文章主要介紹了python tkiner實(shí)現(xiàn) 一個(gè)小小的圖片翻頁(yè)功能,需要的朋友可以參考下2020-06-06