// Returns a list of all subsets of the given set A that contain k elements. function subsets(A, k) { let combinations = []; function _subsets(set, length) { if (length === set.length) { combinations.push(set); return; } for (let i = 0; i < set.length; i++) { let copy = set.slice(0); copy.splice(i, 1); _subsets(copy, length); } } _subsets(A, k); return combinations; }