Why Cantor's diagonal proof applies to real but not to natural numbers (specific reason for repost)
If your list of natural numbers is finite, then your proof is correct, but it only disproves that there are only finitely many numbers. If your list is infinite, your generated (infinite) string that doesn't belong to your list need not necessarily be a natural number (think of a string like "1011011011111111...", which is not a natural number, even if you add a 0 to the end of it.