Three key points:
Backtracking with a start index prevents duplicate combinations.
Base case triggers when you reach the target size ( elements).
You must copy the current combination before adding it to results, otherwise all entries point to the same array.