#include <iostream>
using namespace std;
 
void print (int res[], int n) { 
    for (int i =0; i < n; i++) cout << res[i] << ' ';
    cout << endl;
}
void iterate(int d,int n,int size[], int res[]) {
    if (d >= n) { //stop clause
       print(res,n);
       return;
   }
   for (int i = 0; i < size[d]; i++) { 
       res[d] = i;
       iterate(d+1,n,size,res);
   }
}
 
int main() { 
    int n = 3;
    int size[] = { 2, 4, 2};
    int res[3];
    iterate(0,n,size,res);
    return 0;
}