Вы должны удалить квантификатор {3}
, а также избавиться от лишней группировки и написать этот код,
import re
def regex_search(txt):
lst = re.findall(r'\d{1,3}\.', txt)
return lst
print(regex_search("123.45.67.89"))
Печать ожидаемого результата,
['123.', '45.', '67.']
Кроме того, поскольку вы использовали этот (\d{1,3}\.){3}
, он будет совпадать ровно с тремя из этих \d{1,3}\.
многократно три раза, что будет 123.45.67.
как целое совпадение, но group1 будет захватывать только последнее совпадение, равное 67.
в вашем случае и, следовательно, печатает только это значение в списке.