// 165_321.c

#include <stdio.h>
#include <stdlib.h>

void func(char s, char e, int n)
{
    char *buff;
    int i;

    buff = malloc(n + 1);
    // 各桁ごと
    for (; n >= 1; n--) {
        // 初期値作成
        for (i = 0; i < n; i++) {
            buff[i] = s;
        }
        buff[i] = '\0';
        // 計算
        while (1) {
            i = n - 1;
            fprintf(stderr, "%s\n", buff); // 出力
            buff[i]++;
            // 繰り上げ処理
            while (1) {
                if (buff[i] > e) {
                    buff[i] = s;
                    i--;
                    if (i < 0) {
                        break;
                    }
                    buff[i]++;
                }
                else {
                    break;
                }
            }
            if (i < 0) {
                break;
            }
        }
    }
    free(buff);
}

int main()
{
    func('0', '2', 3);

    return 0;
}
