JSFiddle - React, Tailwind, and code Playground
by Rui Leite
HTML
<div id="resultado"></div>
JavaScript
function GerarCombinacoes(gama, tamanho){
var arr = [];
for(var i = 0; i < Math.pow(gama, tamanho); i++){
arr[i] = [];
for(var j = 0; j < tamanho; j++){
arr[i].push(Math.floor(i / Math.pow(gama, tamanho - j - 1)) % gama + 1);
}
arr[i] = arr[i].sort();
}
arr = arr.sort();
arr = arr.filter(function(linha, ind, array){
var igual_linha_acima = true;
for(var i = 0; i < linha.length; i++){
for(var j = 0; j < linha.length; j++){
if(i != j && linha[i] == linha[j]) return false;
}
if(linha[i] != array[ind-1][i]) igual_linha_acima = false;
}
if(igual_linha_acima) return false;
return true;
});
return arr;
}
var a = GerarCombinacoes(4, 3);
for(var i = 0; i < a.length; i++){
document.getElementById("resultado").innerHTML += a[i] + "<br />";
}