0

重複の可能性:
Pythonでリストのすべての順列を生成する方法

リスト内の要素のすべての順列を見つけたいです。しかし、いくつかの条件が課せられます..うーん..おそらく例は私がよりよく説明するのに役立ちます。

私は4つのリストを持っています

["1"],["0"],["a","b","c],["d","e","f"]

今、私は次のように順列を持ちたいです:

 "10ad" ,"10bd","10cd","10ae", "10be"
 ,"10bf"..

等々..

つまり、基本的にすべての要素(すべての要素を含む)?? 今、私はこれを行うための非常に素朴な方法を知っています。しかし、これを行うためのpythonicの方法は何ですか?ある場合は?助言がありますか

ありがとう

4

1 に答える 1

4

itertools標準のPythonディストリビューションの一部であるモジュールを使用したいと思います。

例えば:

import itertools

a = ["1"]
b = ["0"]
c = ["a","b","c"]
d = ["d","e","f"]

for item in itertools.product(a, b, c, d): 
    print(item)

編集:明確にするために、このitertools.product関数は、順列ではなく、入力されたリスト内のすべての項目のすべての組み合わせを提供します。しかし、OPの言葉遣いに基づいて、これは彼/彼女が実際に望んでいることだと思います。

于 2012-04-06T03:03:31.477 に答える