反復を使用して、長さ L の配列のすべての可能な順列のリストを取得するにはどうすればよいですか?
出力要素には、元の配列と同じ長さの順列のみが含まれている必要があります。
例: {1,2,3}
出力: {1,2,3} {1,3,2} {2,1,3} {2,3,1} {3,1,2} {3,2,1}
サンプルコード (動かない)
var swap = function(z, l, j) {
var e = z.slice(0);
var k = e[l];
e[l] = e[j];
e[j] = k;
return e;
};
var _permu = function(p, i) {
if(i == p.length)
console.log("com", p.join(""));
for (var j = 0; j < i; j++) {
var t = swap(p, j, i);
_permu(t, i - 1);
}
};