JSFiddle - React, Tailwind, and code Playground

HTML

<div id="output"></div>

JavaScript

var maxes = [3, 1, 2, 1];
var myArray = [0, 0, 0, 0];

var pos = 0;

while (pos < myArray.length - 1 || myArray[pos] < maxes[pos]) {
    if (myArray[pos] >= maxes[pos]) {
        myArray[pos] = 0;
        pos++;
        
        continue;
    } 
    myArray[pos]++;
    
    document.getElementById('output').innerHTML += myArray.toString() + "<br>";
}