ホームページ >バックエンド開発 >Python チュートリアル >Python は再帰を使用して数値の完全な配置を解決する例

Python は再帰を使用して数値の完全な配置を解決する例

WBOY
WBOYオリジナル
2016-06-16 08:45:221300ブラウズ

最初のメソッド: 再帰

コードをコピー コードは次のとおりです:

def perms(elements):
if len(elements) yield elements
else:
for perm in perms(elements[1:]):
for i in range(len(elements)):
収量 perm[:i] + 要素 [0:1] + perm[i:]

for item in list(perms([1, 2, 3,4])):
Print item


Result
Copyコード コードは次のとおりです:

[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]

2 番目の方法: Python 標準ライブラリ

コードをコピー コードは次のとおりです:

import itertools
printリスト (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) yield elements
else:
for 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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。