#+PROPERTY: STUDY_DECK_02 * TODO 0077. Combinations :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0077. Combinations][0077. Combinations]] :END: Given two integers ~n~ and ~k~, return /all possible combinations of/ ~k~ /numbers chosen from the range/ ~[1, n]~. You may return the answer in *any order*. *Example 1:* #+begin_src Input: n = 4, k = 2 Output: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] Explanation: There are 4 choose 2 = 6 total combinations. Note that combinations are unordered, i.e., [1,2] and [2,1] are considered to be the same combination. #+end_src *Example 2:* #+begin_src Input: n = 1, k = 1 Output: [[1]] Explanation: There is 1 choose 1 = 1 total combination. #+end_src *Constraints:* - ~1 <= n <= 20~ - ~1 <= k <= n~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def combine(self, n: int, k: int) -> List[List[int]]: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: vector> combine(int n, int k) { } }; #+end_src