Let $G = \{\langle M_1\rangle, \langle M_2\rangle, \langle M_3\rangle,\cdots\}$ be an infinite turing recognizable language, whose members are descriptions of turing machines.
How can one prove that the union of all the languages recognized by the turing machines in $G$, $L(M_1) \cup L(M_2) \cup L(M_3)\cup\cdots $ is turing recognizable?
I tried to prove it by building an enumerator for the language, using the fact that since $G$ is turing recognizable it can be produced by one.
E' =
1. Initialize steps counter i=0
2. Run E, the enumerator of G, number of steps equal to i.
3. For every turing machine description M produced by E:
3.1 for every input word corresponding to 0 up to i according to lexicographic order do:
3.1.1 Run M on the current input.
3.1.2 print if M accepts.
4. increase i by 1, and go back to step 2.
Is this a correct approach? Running the enumerator for a limited amount of steps would produce the same words over and over again. Is this not a problem when creating an enumerator? Is $E'$ valid and producing the language as needed? If not, what should be changed?