>>994の続き

void foo(int *numList,int n,int limit,int targetIndex,int len,)
{
int tempList[NumMax] = {0};

if(limit >= n || targetIndex >= len) return;

memcpy(tempList,numList,sizeof(int)*n);

if(tempList[targetIndex] < limit && len >= 1){
if(targetIndex < 1 || tempList[targetIndex] < tempList[targetIndex-1]){
tempList[targetIndex]++; tempList[len--] = 0;
print_numbers(tempList);
foo(tempList,n,2,targetIndex+1,len);
}
}
foo(tempList,n,limit+1,targetIndex,len);
}