配列の要素の全組み合わせを出力する

配列の要素の全組み合わせを出力したいということが発生したのでメモ

array = %w[a b c d  e]
all_combi=[]
array.count.times{|i| all_combi += array.combination(i+1).to_a}
all_combi
#=>  [["a"], ["b"], ["c"], ["d"], ["e"], ["a", "b"], ["a", "c"], ["a", "d"], ["a", "e"], ["b", "c"], ["b", "d"], ["b", "e"], ["c", "d"], ["c", "e"], ["d", "e"], ["a", "b", "c"], ["a", "b", "d"], ["a", "b", "e"], ["a", "c", "d"], ["a", "c", "e"], ["a", "d", "e"], ["b", "c", "d"], ["b", "c", "e"], ["b", "d", "e"], ["c", "d", "e"], ["a", "b", "c", "d"], ["a", "b", "c", "e"], ["a", "b", "d", "e"], ["a", "c", "d", "e"], ["b", "c", "d", "e"], ["a", "b", "c", "d", "e"]]


参考:http://ref.xaio.jp/ruby/classes/array/combination