Mam taki zbiór znaków (charset) : a b c d.
Chcę wygenerować wszystkie łańcuchy znaków o długości od 1 do max (np. do max = 4):
a, b, c, d, aa, ab, ac, ad, ba, bb, bc, bd, ca, cb, cc, cd, da, db, dc, dd, aaa, aab, aac, ... , dddc, dddd
Zacząłem to robić tak:
#include <stdio.h>
int main() {
char s[255];
int max = 4;
int charset;
//charset: abcd (ascii:97..100)
for(charset=97; charset<=100; charset++) {
s[0] = charset;
s[1] = '\0';
printf("%s\n", s);
}
}
Program daje w wyniku: a, b, c, d
Jak to zapętlić, żeby wynikiem były wszystkie łańcuchy o długości od 1 do max (np. 4):
a, b, c, d, aa, ab, ac, ad, ba, bb, bc, bd, ca, cb, cc, cd, da, db, dc, dd, aaa, aab, aac, ... , dddc, dddd