fluxion_: Suppose there's a context-free grammar with n1 non-terminals, n2 production rules that generates a set size k of strings b,bab,babaab,..... , for any k. There must be some non-terminal that generates a string from the set, and is visited twice during generation of some string from the set (otherwise there's at most n2^n1 strings that can be generated). Since it's visited twice, we are free to use the same production rule both time, so your output will have two fragments ba..ab,ba..ab of the same length.