#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <assert.h>
static const char charset[]=
static char sofar[ML+1];
+static int denomix, denom=1;
+
static void gen(char *inbuf, int len) {
if (!len) {
*inbuf = 0;
- puts(sofar);
+ if (!denomix) {
+ puts(sofar);
+ }
+ denomix += (denom-1);
+ denomix %= denom;
return;
}
const char *cp;
int main(int argc, char **argv) {
int len;
- int maxlen = argc>=2 ? atoi(argv[1]) : ML;
+ int minlen=0, maxlen=ML;
+ char *slash;
+
+ if (argc>=2 && (slash = strchr(argv[1], '/'))) {
+ denomix = atoi(argv[1]);
+ denom = atoi(slash+1);
+ argv++; argc--;
+ }
+
+ if (argc==3) {
+ minlen = atoi(argv[1]);
+ maxlen = atoi(argv[2]);
+ } else if (argc==2) {
+ maxlen = atoi(argv[1]);
+ } else if (argc==1) {
+ } else {
+ abort();
+ }
assert(maxlen <= ML);
- for (len=0; len<maxlen; len++) {
+ for (len=minlen; len<=maxlen; len++) {
fprintf(stderr,"********** generating len=%d **********\n",len);
gen(sofar, len);
}