function combination(arr, N) {
let result = [];
if (N === 1) {
return arr.map((ele) => [ele]);
}
for (let i = 0; i < arr.length - 1; i++) {
let fixed = arr[i];
let restArr = arr.slice(i + 1);
let restComb = combination(restArr, N - 1);
let atteched = restComb.map((ele) => [fixed, ...ele]);
result.push(...atteched);
}
return result;
}