j0hnik,
<script>
var arr = ['A','B','C','D','E'];
function fn(e, k) {
for (var f = [], c = e.length, g = 0;; g++) {
var b = g.toString(c);
if (b.length > k) break;
b = b.padStart(k,"0").replace(/./g, d => (d = parseInt(d, c),e[d]));
f.push(b);
}
return f;
};
document.write(fn(arr, 4).join('<br>'));
</script>