docs: def random_output(self, max=100):
          """ Generate a list of elements from the markov chain.
              The `max` value is in place in order to prevent excessive iteration.
          """
          output = []
          item1 = item2 = MarkovChain.START
          for i in range(max-3):
              item3 = self[(item1, item2)].roll()
              if item3 is MarkovChain.END:
                  break
              output.append(item3)
              item1 = item2
              item2 = item3
          return output