Я не уверен, что полностью понимаю, но, насколько я понимаю, этого должно хватить:
def rows(initial_value=0, nb_rows=5, row_increment=1):
string = ""
for index, value in enumerate(range(initial_value, nb_rows * row_increment, row_increment)):
string += f"{index}: {(value, value + row_increment)},\n"
return string
Затем вы можете вызвать это и передать любой параметр, который вам нужен:
>>> print(rows(nb_rows=3))
0: (0, 1),
1: (1, 2),
2: (2, 3),
Еще более чистым решением было бы иметь итератор, который генерирует строки, а затем просто «объединяет» эти строки вместе:
def rows(initial_value=0, nb_rows=5, row_increment=1):
for index, value in enumerate(range(initial_value, nb_rows * row_increment, row_increment)):
yield f"{index}: {(value, value + row_increment)}"
Тогда:
>>> print(',\n'.join(rows(nb_rows=3)))
0: (0, 1),
1: (1, 2),
2: (2, 3)