import java.util.ArrayList; import java.util.List; public class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer>> res=new ArrayList<List<Integer>>(); List<Integer> temp=new ArrayList<Integer>(); bfs(res,temp,0,n,k); return res; } public void bfs(List<List<Integer>> res,List<Integer> temp,int i,int n,int k) { if(k-temp.size()>n-i) return; if(temp.size()==k) { List<Integer> dd=new ArrayList<Integer>(temp); res.add(dd); return ; } for(int ii=i+1;ii<=n;ii++) { temp.add(ii); bfs(res,temp,ii,n,k); temp.remove(temp.size()-1); } } }