Вы можете использовать эту строку для объединения значения n
в ваше регулярное выражение, используя двойные фигурные скобки для создания единственной в выводе:
fr'(?=(\S{{{n}}}))'
Полный код:
import re
def ngram_finder(x, n):
pat = fr'(?=(\S{{{n}}}))'
return re.findall(pat, x)
x = 'abcdef'
print(ngram_finder(x, 4))
print(ngram_finder(x, 5))
Вывод:
['abcd', 'bcde', 'cdef']
['abcde', 'bcdef']