Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Mapping: 2→abc, 3→def, 4→ghi, 5→jkl, 6→mno, 7→pqrs, 8→tuv, 9→wxyz.
digits = "23"["ad","ae","af","bd","be","bf","cd","ce","cf"]digits = ""[]digits = "2"["a","b","c"]For each digit we branch into 3-4 letters, going digit by digit. The recursion depth equals the number of digits. Total combinations = product of letter counts for each digit (e.g., "23" → 3×3 = 9). Since we're building the string immutably (concatenation), no explicit undo step is needed.