itertools.product
RubyのPythonと同じ効果を持つメソッドを探しています。次のPythonコードを使用します。
from itertools import product
chars = []
for i in range(97,123):
chars.append(chr(i))
for a in range(1,3):
for i in product(chars,repeat=a):
s = ''.join(i)
print s
これは次のようなものを出力します:
a, b, c... x, y, z, aa, ab, ac... ax, ay, az, ba, bb, bc.. etc.
私はそれをRubyに翻訳しようとしました:
(1..2).each do |n|
('a'..'z').to_a.combination(n).each do |c|
s = c.join
puts s
end
end
しかし、出力は同じではありません。1文字のものは正常に機能しますが(az)、2文字のものになると、期待どおりに機能しません。
ab, ac, ad.. ax, ay, az, bc, bd, be
生成されていないaa
、ba
またはbb
-文字などを繰り返さずにすべての組み合わせを生成しているように見えますか?
では、Pythonのようにすべての組み合わせを生成するには、どの方法を使用する必要がありますか?itertools.product