You can store arrays in dictionaries. For example
NSDictionary *mapping = @{@"2": @[@"a", @"b", @"c"]};
and you could for each key press add the objects from the array in the dictionary to an intermediate array
NSMutableArray *values = [NSMutableArray array];
...
// For each time a key is pressed
[values addObjectsFromArray:@[mapping[keyPressed]]];
...
When you want to display the output you calculate all combinations for all values in the values array.