Quite a nice one is the two-set partition $A,A^c$, where $A$ is the set of points with an even number of terminal 0's:
$$
A = \bigcup_{k \geq 0} A_k
$$
where $A_k = \bigl\{(x_1, x_2, \ldots) \mid x_1=\ldots=x_{2k}=0 \text{ and } x_{2k+1}=1 \bigr\}$.
Or, if you work with the odometer acting on the space $[0,1[$:
$$
A = \bigcup_{k \geq 0} \left[\frac{1}{2^{2k+1}}, \frac{1}{2^{2k}} \right[
$$
This partition is generating for the following reason. Code a trajectory $x, Tx, T^2x, \ldots$ by a sequence $(v_0, v_1, \ldots)$ of $a$'s and $b$'s according to whether it's in $A$ or not.
Then you can get the first digit $x_1$ of $x$ by looking at the blocks of four consecutive terms of the $v$ sequence:
- if the first digit of $x$ is $x_1=1$, then the block $(v_0,v_1,v_2,v_3)$ of four consecutive terms is one of $aaab$, $abaa$ or $abab$ (that is $(v_0,v_1,v_2,v_3)$ is $a*a*$, with at least one of the stars a $b$);
- if $x_1=0$, then $(v_0,v_1,v_2,v_3)$ is $*a*a$ with at least one of the stars a $b$.
In particular, the sets of possible codes are disjoint, so that this information suffices to determine the first digit of $x$.
To get the second digit of $x$, look at blocks of eight consecutive terms:
-
if the first two digits of $x$ are 00, then the code is $*aba*aba$ with at least one of the $*$'s an $a$;
-
if the first two digits of $x$ are $01$, then the code is $ba*aba*a$ with at least one of the $*$'s an $a$;
-
if the first two digits of $x$ are 10, then the code is $aba*aba*$ with at least one of the $*$'s an $a$;
-
if the first two digits of $x$ are 11, then the code is $a*aba*ab$ with at least one of the $*$'s an $a$;
Again, these sets of possibilities are disjoint, so that one can recover the first and second digits of $x$ from 8 terms of the $v$ sequence.
And so on, looking at the block of $2^{n+1}$ consecutive terms of the $v$ sequence determines the first $n$ digits of $x$.