From: Regis d'Aubarede Date: 2013-04-15T07:41:26+09:00 Subject: Re: Looking for more elegant solutions. ?? def mails( n, times ,already=[]) return [already] if n > times nexts=(1..times).to_a - already-[n] nexts.inject([]) { |a,i| a+mails( n+1, times, already+[i] ) } end p mails(1,4) -- Posted via http://www.ruby-forum.com/.