如何使用迭代获得长度为 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);
}
};