児玉 です.

From: Hiroshi SATO <hiroshi / cslab.kecl.ntt.co.jp>
Subject: [ruby-list:26516] n-fold loop
Date: Wed, 13 Dec 2000 14:05:13 +0900
Message-ID: <20001213050719.26121 / gaultier.icl.kecl.ntt.co.jp>

> 佐藤と申します.
> やりたいことは,nが与えられたときに(仮にn=3とする),
> 例えば用意された配列 [A, B, C, D] に対して,
>  [A, A, A]
....
> の様な順列を得たいのです.(4Pn)
...

再帰的な呼び出しをかけたら?

def p(arr,res,n)
if n==0 then print res,"\n";
else
	for i in arr
		p(arr,res+[i],n-1)
	end
end
end

print p(["a","b","c","d"],[],3)

-- 
K.Kodama(kodama / kobe-kosen.ac.jp)