var combine = function(arr, k) { var result = {}; var subresult = []; var n = arr.length var count = 0 function combineSub(subresult){ if(subresult.length == k){ var subres = subresult.slice(0) var sub = [] subres.forEach(item=>sub.push(arr[item])) var res = sub.join() if(result[res] == undefined){ result[res] = sub count++ } return; } for(var i= 0;i<n;i++){if(subresult.indexOf(i) ===-1){ subresult.push(i); combineSub(subresult); subresult.pop(); } } } combineSub(subresult); return count;}combine([1,2,2],1)