title: How can I tell if a string repeats itself in Python?
body: <p>I'm looking for a way to test whether or not a given string repeats itself for the entire string or not.</p>
  
  <p>Examples:</p>
  
  <pre><code>[
      '0045662100456621004566210045662100456621',             # '00456621'
      '0072992700729927007299270072992700729927',             # '00729927'
      '001443001443001443001443001443001443001443',           # '001443'
      '037037037037037037037037037037037037037037037',        # '037'
      '047619047619047619047619047619047619047619',           # '047619'
      '002457002457002457002457002457002457002457',           # '002457'
      '001221001221001221001221001221001221001221',           # '001221'
      '001230012300123001230012300123001230012300123',        # '00123'
      '0013947001394700139470013947001394700139470013947',    # '0013947'
      '001001001001001001001001001001001001001001001001001',  # '001'
      '001406469760900140646976090014064697609',              # '0014064697609'
  ]
  </code></pre>
  
  <p>are strings which repeat themselves, and</p>
  
  <pre><code>[
      '004608294930875576036866359447',
      '00469483568075117370892018779342723',
      '004739336492890995260663507109',
      '001508295625942684766214177978883861236802413273',
      '007518796992481203',
      '0071942446043165467625899280575539568345323741',
      '0434782608695652173913',
      '0344827586206896551724137931',
      '002481389578163771712158808933',
      '002932551319648093841642228739',
      '0035587188612099644128113879',
      '003484320557491289198606271777',
      '00115074798619102416570771',
  ]
  </code></pre>
  
  <p>are examples of ones that do not.</p>
  
  <p>The repeating sections of the strings I'm given can be quite long, and the strings themselves can be 500 or more characters, so looping through each character trying to build a pattern then checking the pattern vs the rest of the string seems awful slow. Multiply that by potentially hundreds of strings and I can't see any intuitive solution.</p>
  
  <p>I've looked into regexes a bit and they seem good for when you know what you're looking for, or at least the length of the pattern you're looking for. Unfortunately, I know neither.</p>
  
  <p>How can I tell if a string is repeating itself and if it is, what the shortest repeating subsequence is?</p>