void g(int l,int v,char *c)
{
int i=v;
if (l--==0)
puts(c);
else
while(i)
g(l,(c[l]='0'+--i,v),c);
}
void f(int l,int v)
{
char c[l+2];
g(((c[l]=13,c[l+1]=0),l),v,c);
}
int main()
{
f(3,2);
return 0;
}
Протестировано, работает !, обновлено, чтобы исправить проблему читабельности