#include <cstdio>
#include <iostream>
#include <cstring>
using std::string;
const int N = 35;
int n;
int s, t, w;
string x;
int b[N], vi[N];
char tc;
bool fr;
int tmp;
void dfs(int now)
{
// printf("\n%d: ", now);
if (now == w + 1 && tmp <= 5)
{
if (tmp)
{
for (int i = 1; i <= w; i++)
{
printf("%c", x[b[i] - 1]);
}
printf("\n");
}
fr = 1;
tmp++;
return ;
}
if (!fr)
{
scanf("%c", &tc);
}
// b[now] = tc - ('a' + s - 1) + 1;
// vi[b[now]] = 1;
//
// printf("%d\n", b[now]);
//
// dfs(now + 1);
//
// vi[b[now]] = 0;
bool fl = !fr ? 0 : 1;
for (int i = b[now - 1] + 1; i <= n; i++)
{
if (fl && !vi[i])
{
b[now] = i;
vi[i] = 1;
// printf("al %d %d\n", now, b[now]);
dfs(now + 1);
vi[i] = 0;
}
if (!fl && i == tc - ('a' + s - 1) + 1)
{
b[now] = i;
vi[i] = 1;
// printf("sp %d %d\n", now, b[now]);
dfs(now + 1);
vi[i] = 0;
fl = 1;
}
}
}
int main()
{
//freopen("count.in", "r", stdin);
//freopen("count.out", "w", stdout);
scanf("%d%d%d", &s, &t, &w);
for (int i = s; i <= t; i++)
{
x += ('a' + i - 1);
}
n = t - s + 1;
scanf("%c", &tc);
// for (int i = 1; i <= w; i++)
// {
// scanf("%c", &t);
//
// b[i] = t - ('a' + s - 1) + 1;
// vi[b[i]] = 1;
// }
dfs(1);
//fclose(stdin);
//fclose(stdout);
return 0;
}
下载下来的样例都是过的