Generate all possible strings from a string of phone number digits using a digit-to-letters mapping.
Use the standard mapping 2 -> abc, 3 -> def, ..., 9 -> wxyz. Implement letter_combinations(digits), which accepts a non-empty string containing digits from 2 through 9 and returns a list of every possible combination. Return combinations in lexicographic order based on the mapping order.
Example: digits = "23" returns ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. Example: digits = "7" returns ["p", "q", "r", "s"].
Constraints: 1 <= len(digits) <= 10; each character is a digit from 2 through 9.
def letter_combinations(digits):