JSFiddle - React, Tailwind, and code Playground
HTML
<form>
Plage 1
min<input type="text" name="r1min" value="1"/>
max<input type="text" name="r1max" value="5"/>
<br/>
Plage 2
min<input type="text" name="r2min" value="3"/>
max<input type="text" name="r2max" value="7"/>
<br/>
Plage 3
min<input type="text" name="r3min" value="5"/>
max<input type="text" name="r3max" value="10"/>
<br/>
<input type="submit" value="go"/>
</form>
<hr/>
<div id="output"></div>
JavaScript
function getCombis(r1,r2,r3){
var combis = [];
for(var i = r1[0]; i<=r1[1];++i){
for(var j = Math.max(i+1, r2[0]); j<=r2[1]; ++j){
for(var k = Math.max(j+1, r3[0]); k<=r3[1]; ++k){
combis.push([i,j,k>9?String.fromCharCode(55+k):k].join(''))
}
}
}
return combis;
}
var f = document.getElementsByTagName('form')[0];
var outputNode = document.getElementById('output');
f.onsubmit = function(e){
try{
['r1','r2','r3'].forEach(x=>{
window[x] = [parseInt(this[x+'min'].value, 10), parseInt(this[x+'max'].value, 10)];
}, this)
var combis = getCombis(r1,r2,r3)
outputNode.innerHTML = combis.join('<br/>')+'<br/>total combis '+combis.length;
}catch(e){
console.log('e :' , e)
}
return false;
}