Given that $ G = ({<M_1>, <M_2>, <M_3> …})$ is an infinite turing recognizable language, whose all inputs are descriptions of turing machines,

how can one prove that the union of all the languages recgonized by the turing machines in $ G$ : $ (L(M1) ∪ L(M2) ∪L(M_3).. )$ is itself 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 T, number of steps equal to i. 3. For every turning machine description M produced by E: 3.1 for every input word corresponding to 0 up to i (according to lexicographic order do: 3.2 Run M on the current input. 3.3 print if M accepts. 4. increase i by 1, and go back to step 2. `

Is this a correct approach? Is $ E’$ valid and producing the language as needed? If not, what am I doing wrong?