原题
递归
#include<bits/stdc++.h>
using namespace std;
int n, m;
int way[15];
void dfs(int u, int start){//u记录当前已经枚举几位数,start记录当前枚举到的那个数
if(u + n - start < m) return ;
if(u == m + 1){
for(int i = 1; i <= m; i ++ ) cout<<way[i]<<" ";
puts("");
return ;
}
for(int i = start; i <= n; i ++ ){
way[u] = i;//向way中放的最小的数就是start,就是当前最小的还没用过的数
dfs(u + 1, i + 1);
way[u] = 0;
}
}
int main()
{
cin>>n>>m;
dfs(1, 1);
return 0;
}