生成C中长度为N的所有字符串

我自己尝试编码并且非常失败。 这基本上就是我想要的:

a b ... z aa ba ... za ab bb ... zz aaa baa ... zzz 

最后它应该生成每个字符串,使用charset az生成短于N个字符的字符串。 所以我不是在寻找排列 (在互联网上可以找到1001个实现),但是对于替换的组合 (至少在Python中它是如何调用的)。 订单并不重要 ,速度是。

看起来你想要它在C中,这是一种方法:

 #include  #include  int inc(char *c){ if(c[0]==0) return 0; if(c[0]=='z'){ c[0]='a'; return inc(c+sizeof(char)); } c[0]++; return 1; } int main(void){ int n = 3; int i,j; char *c = malloc((n+1)*sizeof(char)); for(i=1;i<=n;i++){ for(j=0;j 

像这样的东西(伪代码):

 void CompWithRep(string line,int N) { char c; if (N==0) return; for (c = 'a' ; c <= 'z' ; c++ ) { printf(line + c); CompWithRep(line + c,N-1); } }