<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")].reduce((a,d) => (d = parseInt(d, c), a + e[d]),"");
f.push(b);
}
return f;
};
document.write(fn(arr, 4).join('<br>'));
</script>