#include using namespace std; const int N = 1010; int a[N]; int n, k; vector path; void dfs(int step, int m) { if (m == k) { for (int i = 0; i < path.size(); i++) cout << path[i] << " "; cout << endl; return; } if (step == n + 1) return; //选择了当前数字 path.push_back(a[step]); dfs(step + 1, m + 1); path.pop_back(); //放弃当前数字 dfs(step + 1, m); } int main() { cin >> n >> k; for (int i = 1; i <= n; i++)a[i] = i; dfs(1, 0); return 0; }