Определить, является ли последовательность кратной подпоследовательности в Python

У меня есть кортеж нулей и единиц, например:

(1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1)

Оказывается:

(1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) == (1, 0, 1, 1) * 3

Я хочу функциюf такой, что еслиs непустой кортеж нулей и единиц,f(s) самая короткая подзаголовокr такой, чтоs == r * n для некоторого положительного целого числаn.

Так, например,

f( (1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1) ) == (1, 0, 1, 1)

Какой удобный способ написать функциюf в питоне?

Редактировать:

Наивный метод, которым я сейчас пользуюсь

def f(s):
  for i in range(1,len(s)):
    if len(s)%i == 0 and s == s[:i] * (len(s)/i):
      return s[:i]

Ответы на вопрос(7)

Ваш ответ на вопрос