I have a question about diagonalisation (to show that some sets with infinite members are not countable/of larger cardinality; eg R>N)

While I get the argument for 1 to 1 (from both sides), that for two infinite sets to be of the same cardinality there should be some way to form every member of the second set by altering the first (eg k -> 2k for comparing all naturals to just the even ones, or something like (k,-(k-1) for naturals -> integers), I am having considerable difficulty with the argument for showing that [0,1] is not countable, and by extent that the cardinality of all the Reals is the same as that of any of their parts (such as 0,1).

My problem in understanding rests on the following:

Let's say that (to avoid different numbers) the set of [0,1] was written in binary, and you'd get something like all possible variations of 0 and 1. Obviously for any finite bit of that (eg a bit which only had 8 positions, such as 01010101), the complete list of variations would be 2^8 (2 different choices in each position). And for an infinite string this would have been going on forever. Now, writing the supposed "first" of such strings thus:

1. 00101101001...
2. 01010100011...
...
The diagonalisation argument seems to be that any such grouping would already include added bits, and if (for example) you change the first digit of the first from 0 to 1, and the second of the second from 1 to 0, you already have a new string.
But I do not get how it stops mattering that, ultimately, if the list goes on, at some position you'd have this new element. I get that the alteration of x bit occurs in ALL the list; I just don't get how the list isn't supposed to already include it by virtue of being a list. Ie I don't see the clear tie to how this doesn't allow any numbering of such a list.

Help would be very welcome. It would certainly save me time!!!!