#include #include #include char *charset; int *buffer, len, max; void printchar() { int i; for (i = 0; i < len; ++i) putchar(charset[buf[i]]); putchar('\n'); } int next() { int i; for ( i = 0; i < len; ++i) if (++buffer[i] < max) return 1; else buffer[i] = 0; return 0; } int main(int argc, char *argv[]) { set = argv[1]; max = strlen(charset); len = atoi(argv[2]); buf = calloc(len, sizeof(int)); do printchar(); while (next()); return 0; }