xxxxxxxxxx
16
function setup() {
createCanvas(400, 400);
kSubsetPermutations([1,2,3,4,5], 3);
}
function kSubsetPermutations(set, k, partial) {
if (!partial) partial = [];// set default value on first call
for (var element in set) {
if (k > 1) {
var set_copy = set.slice();//slice() creates copy of array
set_copy.splice(element, 1);//splice() removes element from array
kSubsetPermutations(set_copy, k - 1, partial.concat([set[element]]));
} // a.concat(b) appends b to copy of a
else console.log("[" + partial.concat([set[element]]) + "] ");
}
}