String 打印alpha范围的最有效方法?

String 打印alpha范围的最有效方法?,string,algorithm,String,Algorithm,我想做一个简单的程序:它得到两个字符串作为输入,并输出它们之间的所有内容。例如,对于输入“a”、“b”,输出为: a b a b c ... x y z aa ab ac ... ax ay az ba bb bc ... bx by bz ... za zb zc ... zx zy zz 对于输入'a','zz',输出为: a b a b c ... x y z aa ab ac ... ax ay az ba bb bc ... bx by bz ... za zb zc ... z

我想做一个简单的程序:它得到两个字符串作为输入,并输出它们之间的所有内容。例如,对于输入“a”、“b”,输出为:

a b
a b c ... x y z aa ab ac ... ax ay az ba bb bc ... bx by bz ... za zb zc ... zx zy zz
对于输入'a','zz',输出为:

a b
a b c ... x y z aa ab ac ... ax ay az ba bb bc ... bx by bz ... za zb zc ... zx zy zz
最有效的方法是什么

----编辑----

以下是我的实现,首先使用递归:

void rec_print(int current)
{
    if(current == max_len)
    {
        for(char c='a'; c<= 'z'; ++c)
        {
            global[current] = c;
            printf("%s\n", global);

        }
    }
    else
    {
        for(char c='a'; c<= 'z'; ++c)
        {
            global[current] = c;
            rec_print(current+1);
        }
    }
}
void rec\u打印(当前整数)
{
如果(当前==最大值)
{

对于(char c='a';c,这应该是完整算法的丑陋版本:

void loop_print()
{
    char *buffer;
    int i;

    char dst_buffer[5] = "00000";

    for( int len=1; len<= 3; len++)
    {
        buffer = calloc(len+1, sizeof(char));
        memset(buffer, 'a', len);

        if(len == 1)
        {
            strcpy(dst_buffer, "z");
        }
        if ( len == 2)
        {
            strcpy(dst_buffer, "bc");
        }
        if(len == 3)
        {
            strcpy(dst_buffer, "abc");
        }


        // printf("buffer = %s\n", buffer);
        // printf("dstbuf = %s\n", dst_buffer);

        // system("pause");

        do
        {
            i=len-1;

            printf("%s\n", buffer);

            while(i > -1 && buffer[i] == 'z')
            {
                buffer[i] = 'a';
                i--;
            }

            buffer[i]++;


        }
        while (strcmp(buffer, dst_buffer) == -1);

        printf("%s\n", buffer);

    }


}

请展示您迄今为止的研究/调试工作。请先阅读第页。@SouravGhosh这是一个算法请求。。为什么投票失败?@SouravGhosh还添加了2个实现