#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define SYMBOLS "hu4-"

void recurse(char *x, int currlevel, int maxlevel) {
    if (currlevel == maxlevel) {
        // last level
        printf("%s\n", x);
    } else {
        // add one level
        for (int k = 0; k < strlen(SYMBOLS); k++) {
            x[currlevel] = SYMBOLS[k];
            recurse(x, currlevel + 1, maxlevel);
        }
    }
}

int main(void) {
    int loops = 5;
    char *x = calloc(loops + 1, 1); // assume OK
    recurse(x, 0, loops);
    free(x);
	return 0;
}
