<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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