非実用的な動的コードを書くのはやめて下さい。 even = filter(lambda x: x%2 == 0, range(5)) # 0-5の偶数をリストとして返します odd = filter(lambda x:x%2==1, range(5)) # 0-5の奇数をリストとして返します print map(lambda x:map(lambda y: (x, y), odd), even) # これを内包表記で表現すると原因が分かります。 [[(x, y) for y in odd] for x in even] # この場合は以下の通りに書き換えれば配列の具合が良くなります res = [] [[res.append((x, y)) for y in odd], for x in even] print res