Ваш рисунок - это уменьшение от внешних краев к середине. каждый шаг в рекурсии должен объединять меньшую подстроку со значением на каждой стороне (выводить только конечный результат в конце):
def pattern(n,k):
if n <= 0: return str(n)
return f"{n}, {pattern(n-k,k)}, {n}"
output:
print(pattern(16,5))
# 16, 11, 6, 1, -4, 1, 6, 11, 16
В идеале вы следует отделить вычисления от рендеринга, чтобы функция работала с числами, и вы можете отформатировать их как строку для печати в конце:
def pattern(n,k):
return [n] if n<=0 else [n]+pattern(n-k,k)+[n]
print(pattern(n,k))
# [16, 11, 6, 1, -4, 1, 6, 11, 16]
# or
print(", ".join(map(str,pattern(16,5))))
# 16, 11, 6, 1, -4, 1, 6, 11, 16