Ordering real numbers between 0 and 1 by their decimal expansion? Writing only the decimal expansion of real numbers I could order them in this way:  
1 < 2 < ... < 9 <
01 < 02 < ... < 09 < 10 < ... < 19 < 20 < ... < 98 < 99 <
001 < 002 < ... < 100 < ... < 200 < ... < 900 < ... < 999 <
...
0000000001 < ... < 9999999999
etc.
But where is my flaw of not counting all the reals ?
I mean the decimal expansion of square root of 2 is infinite, so can’t I just claim that I will count it after infinite number of steps ?
 A: That is exactly Cantor's diagonal argument. Assume for the sake of eventual contradiction there is a list or all reals between 0 and 1 (exclude 1 itself), so you can talk about $r_n$, the $n$-th number of your list. They all start $0.\ldots$. For definiteness, forbid numbers ending in an infinite sequence of 9, as $0.59999\ldots = 0.6$ (this leaves out 1). Consider the number $d$, constructed from the list by making it's $k$-th digit different from the $k$-th digit of $r_k$, for example set it to 1 if the $k$-th digit of $r_k$ is not 1, and 2 if the $k$-th digit of $r_k$ is 1. Then $d$ is certainly in the range, it doesn't contain any 9 (let alone an infinite stretch of them at the end), and should be on our list. But it is different in at least one digit of each number on the list. Contradiction, such a list can't exist.
A: All numbers have infinite digits.
0.1 = 0.1000...
0.99 = 0.99000...

It's just we have a rule saying if a number ends with infinite zeros, we don't have to write it.
You can change it to 1, by doing so
0.1 = 0.1111...
0.99 = 0.99111...

And then you can not skip the zeros in
0.7000..., because 0.7 now means 0.7111...
Your list will only contain numbers that ends with infinite zeros with finite list size. Any number that doesn't end with infinite zeros will not in it.
Also, infinite digits means every number contains infinite size of data. Rational numbers that have a repeat pattern, therefore can be represented by finite data size are actually special case.
