Это пример того, как построить вывод
>>> def make_rows(cards, indexes):
... return [align_items(i, 30) + make_index(j)
... for i, j in zip(cards, indexes)]
...
>>> def align_items(items, width):
... return ' '.join(items).center(width)
...
>>> def make_index(s):
... return 'index ' + s
...
>>> cards = [['j'], ['j', 'q'], ['6', '7', 'K']]
>>> indexes = ['0', '1-2', '3-5']
>>>
>>> for i in make_rows(cards, indexes):
... print(i)
...
j index 0
j q index 1-2
6 7 K index 3-5
>>>
Это второй пример, где индексы более продвинуто создаются
>>> def make_rows(cards, indexes):
... return [align_items(i, 30) + make_index(j)
... for i, j in zip(cards, indexes)]
...
>>> def align_items(items, width):
... return ' '.join(items).center(width)
...
>>> def make_index(lst):
... if len(lst) == 1:
... return 'index {}'.format(lst[0])
... else:
... return 'index {}-{}'.format(lst[0], lst[1])
...
>>> cards = [['j'], ['j', 'q'], ['6', '7', 'K']]
>>> indexes = [[0], [1, 2], [3, 5]]
>>>
>>> for i in make_rows(cards, indexes):
... print(i)
...
j index 0
j q index 1-2
6 7 K index 3-5
>>>
Дальше тебе нужно просто сформировать входные последовательности отдельно и подать их в функцию, которая выведет их определённым образом.