Print the string equivalents of a phone number
You're working way too hard:


itertools.product() produces cartesian products.
You don't need to convert strings to lists; you can iterate over strings directly.
Lookups are better done using a dictionary than a chain of if statements.




from itertools import product

KEYPAD = {
                 '2': 'abc',  '3': 'def',
    '4': 'ghi',  '5': 'jkl',  '6': 'mno',
    '7': 'pqrs', '8': 'tuv',  '9': 'wxyz',
}

def convert_num(number):
    letters = [KEYPAD[c] for c in number]
    return [''.join(combo) for combo in product(*letters)]

print(convert_num('234'))