任意次元の多次元構造を扱っています。Python のxrange
反復子リストがあり、各反復子は多次元配列のインデックスを表します。
indices = [ i, j, k ]
どこ
i = xrange(1,3)
j = xrange(3,5)
k = xrange(5,7)
すべての可能な値を生成するために、次の単純な再帰コードを使用します。
def travtree(index,depth):
"Recursion through index list"
if depth >= len(indices):
# Stopping Condition
print index
else:
# Recursion
currindexrange = indices[depth]
for currindex in xrange(len(currindexrange)):
newindex = list(index) # list copy
newindex.append(currindexrange[currindex])
travtree(newindex,depth+1)
travtree([],0)
これは問題なく動作しますが、これを行うためのより効率的な Pythonic の方法はあるのでしょうか? モジュールを調べてみましたitertools
が、何も飛び出しません。