def parse_hotkey_combinations(hotkey):
def combine_step(step):<EOL><INDENT>return (tuple(sorted(scan_codes)) for scan_codes in _itertools.product(*step))<EOL><DEDENT>return tuple(tuple(combine_step(step)) for step in parse_hotkey(hotkey))<EOL>
Parses a user-provided hotkey. Differently from `parse_hotkey`,
instead of each step being a list of the different scan codes for each key,
each step is a list of all possible combinations of those scan codes.