を最初はRubyで書き始めたのだが、想像してたよりも面倒なことになりそうだった(mapとかinjectでできる?再帰が必要?)。 そんなとき、研究室の先輩にPythonを勧められたときに教えてもらった、リストの内包表記のことをふと思い出したわけである。 自分はPython使いではないので手間取るかと思ったが、かなりあっさりできてしまった。 せっかくだから(?)、最近リリースしたばかりらしいPython 3.0で動くように書き直してみた。 from functools import reduce # 直積を求める関数 def product(lists): return reduce( lambda prod, list: [x + [y] for x in prod for y in list], lists, [[]]) alphabets = ['A', 'B', 'C'] numbe

