JSFiddle - React, Tailwind, and code Playground
by Steven Senkus
JavaScript
var allArrays = [
[0, 2, 4],
[1, 3, 5],
[6, 7]
];
// Pre-calculate divisors
var divisors = [];
for (var i = allArrays.length - 1; i >= 0; i--) {
divisors[i] = divisors[i + 1] ? divisors[i + 1] * allArrays[i + 1].length : 1;
console.log(divisors);
}
function getPermutation(n) {
var result = "",
curArray;
for (var i = 0; i < allArrays.length; i++) {
curArray = allArrays[i];
result += curArray[Math.floor(n / divisors[i]) % curArray.length];
}
return result;
}
var counts = [];
allArrays.forEach(function (arr) {
counts.push(arr.length);
});
var zzz = counts.reduce(function (pr, ne) {
return pr * ne;
});
console.log('', zzz);
for (var q = 0; q < 100; q++) {
console.log(getPermutation(q));
}