Proof of Baby Rudin Theorem 2.43 I came up with the following fleshed out proof of Theorem 2.43 from Principles of Mathematical Analysis. 
Although this is a duplicate of several other questions, I found many of the other proofs of 2.43 on StackExchange verbose or unclear (and I didn't see this proof covered in the Harvey Mudd or Scripps YouTube lectures), so I hope that this version of the proof can serve as a more helpful reference to anyone else who gets stuck.
At the same time, I'm not confident that my reasoning is sound, so I hope that if there are any major flaws or oversights in my proof that a critical reader can point them out, or confirm that I'm correct about property (iii).
Theorem 2.43
Let $P$ be a nonempty perfect set in $\mathbb{R}^k$. Then $P$ is uncountable.
Proof: Since $P$ is non-empty, and every point of $P$ is a limit point, $P$ contains at least one limit point. Hence, $P$ is infinite (by 2.20).
Suppose $P$ is countable and denote the points of $P$ by $x_1, x_2, x_3, \dots$
We can construct a sequence $\{V_n\}$ of neighborhoods as follows:
Let $V_1$ be any neighborhood of $x_1$. Then $V_1 \cap P$ is non-empty, because $x_1$ is a limit point of $P$.
If $V_1$ consists of all $y \in \mathbb{R}^k$ such that $|y-x_1| < r$, the closure $\overline{V_1}$ of $V_1$ is $\{y | |y-x_1| \le r\}$ (note: I will not prove this rigorously, but see Lemma 1 below for a sketch of the proof).
Suppose $V_n$ has been constructed so that $V_n \cap P$ is not empty and $V_n = N_r(p)$ for some $p \in P$. Since every point of $P$ is a limit point of $P$, there is a neighborhood $V_{n+1}$ such that 
(i) $\overline{V_{n+1}} \subset V_n$,
(ii) $x_n \not \in \overline{V_{n+1}}$,
(iii) $V_{n+1} \cap P$ is not empty, and $V_{n+1} = N_r(p)$ for some point in $P$.
By (iii), $V_{n+1}$ satisfies our induction hypothesis, and the construction can proceed.
We now show how we can always construct such a neighborhood $V_{n+1}$. Let's say that $V_n = N_{r_n}(p_n)$ for some $p_n \in P$.
Just a quick note: it's a common point of confusion that people believe that $x_n$ must be in $V_n$. While $x_1 \in V_1$, we cannot assume that this holds true for any other $x_n$, and at no point does the proof assume this (or need to assume this).
Let $p_{n+1}$ be some point in $V_n \cap P$, such that (a.) $p_{n+1} \not = p_{n}$,  (b.) $p_{n+1} \not = x_n$, and (c.) $p_{n+1} \not = x_{n+1}$. It follows from Lemmas 2 and 3 that such a point exists.
Lemma 2: For $n>1$, there exists some point $q \in V_n \cap P,$ such that $q \not = p_n$, and such that $d(p_n, q) < d(p_n, x_n)$ and $d(p_n, q) < d(p_n, x_{n+1})$. Suppose not. Note that for $n > 1$, we have that $p_n \not = x_n$ and $p_n \not = x_{n+1}$ (by our choice of $p_n$). Therefore, $d(p_n, x_n) > 0$ and $d(p_n, x_{n+1}) > 0$. So there is some neighborhood of $p_n$ (namely, the neighborhood with radius $r = d(p_n, x)$, where $x \in \{x_n, x_{n+1}\}$) such that the only point of that neighborhood in $P$ is the point $p_n$, which contradicts our assumption that $p_n$ is a limit point of $P$. 
Lemma 3: For $n=1$, there exists some point $q \in V_1 \cap P,$ such that $q \not = p_1$, $d(p_1, q) < d(p_1, x_2)$. Suppose not. Note that $p_1 = x_1$. Therefore, $d(p_1, x_2) = d(x_1, x_2) > 0$. So there is some neighborhood of $p_n$ (namely, the neighborhood with radius $r = d(p_1, x_2))$, such that the only point of that neighborhood in $P$ is the point $p_1$, which contradicts our assumption that $p_1$ is a limit point of $P$.
Let $V_{n+1} = N_{r_{n+1}}(p_{n+1})$ with $r_{n+1}$ chosen subject to the following conditions.
(1.) $r_{n+1} \le d(p_{n+1}, x_n)$, and
(2.) $r_{n+1} < r_n - d(p_n, p_{n+1})$.
By our choice of $p_{n+1}, r_{n+1}$, and $V_{n+1} = N_{r_{n+1}}(p_{n+1})$ we have the following:
(I) $V_{n+1}$ satisfies (i):
If $y \in \overline{V_{n+1}}$, then 
$d(p_n, y)$ 
$\le d(p_n, p_{n+1}) + d(p_{n+1}, y)$ [by the properties of a metric space]
$\le d(p_n, p_{n+1}) + r_{n+1}$
$< d(p_n, p_{n+1}) + r_n - d(p_n, p_{n+1})$ [by our choice of $r_{n+1}]$
$= r_n$.
Thus, $y \in V_n$. Hence, $V_{n+1}$ satisfies (i).
(II) $V_{n+1}$ satisfies (ii):
If $y \in V_{n+1}$, then $d(p_n, y) < r_{n+1} \le d(p_{n+1}, x_n)$. Thus, $x_n \not \in V_{n+1}$. Hence, $V_{n+1}$ satisfies (ii).
(III) $V_{n+1}$ satisfies (iii):
Because $p_{n+1}$ was chosen to be in $P$, we have that $N_r(p_{n+1}) \cap P$ is non-empty for all neighborhoods of $p_{n+1}$. Thus, $V_{n+1}$ satisfies (iii).
Let $K_n = \overline{V_n} \cap P$. Since $\overline{V_n}$ is closed and bounded in $\mathbb{R^k}$, $\overline{V_n}$ is compact (by 2.41). $P$ is closed (because $P$ is perfect). Thus, $\overline{V_n} \cap P$ is closed (by 2.24(b)). Hence $K_n$ is compact (by 2.35, because $K_n$ is a closed subset of a compact set).
Since $x_n \not \in K_{n+1}$, no point of $P$ lies in $\cap_{1}^{\infty} K_n$ (this is implied by the fact that $P$ is countable, hence for every $x_i \in P$, there is a $K_{i+1}$ that excludes $x_i$ from $\cap_{1}^{\infty} K_n$). But $K_n \subset P$, so this implies that $\cap_{1}^{\infty} K_n$ is empty.
But each $K_n$ is nonempty (by (iii), and $K_n \supset K_{n+1}$ (by (i)). But this contradicts the corollary to 2.36. The theorem follows.
Lemma 1: $y$ is a limit point of $V_1$ if and only if $|y - x_1| = r$ or $y \in V_1$. Proof Sketch: suppose $|y - x_1| > r$. Then $|y - x_1| = r + \epsilon$ for some $\epsilon > 0$. So $N_{\epsilon/2}(y) \cap V_1 = \emptyset$ and $y$ is not a limit point of $V_1$. Now suppose $|y - x_1| = r$. Then every neighborhood of $y$ contains a point in $V_1$, so $y$ is a limit point of $V_1$).
 A: I was also kind of curious, as an exercise, to see why this proof would not apply in the same way to $P = \mathbb{Q} \cap [0,1]$ and (wrongly) suggest that $P$ in that case would be uncountable. The rational numbers are dense among the real numbers, so for any point in $\mathbb{Q} \cap [0,1]$, and for any radius, we can find an infinite number of other points in $\mathbb{Q} \cap [0,1]$ to select as $p_{n+1}$, and we have a lot of freedom in our choice of $r_{n+1}$.
I believe that the place where the proof breaks in this case is here: 
In the original proof we say,
Let $K_n = \overline{V_n} \cap P$. Since $\overline{V_n}$ is closed and bounded in $\mathbb{R}^k, \overline{V_n}$ is compact (by 2.41). $P$ is closed (because $P$ is perfect). Thus, $\overline{V_n} \cap P$ is closed (by 2.24(b)). Hence $K_n$ is compact (by 2.35, because $K_n$ is a closed subset of a compact set).
However, in the case where $P = \mathbb{Q} \cap [0,1]$, it is no longer accurate to say that $P$ is closed. In fact, there are many limit points of $\mathbb{Q} \cap [0,1]$ that are not in $\mathbb{Q} \cap [0,1]$ (for example, $\sqrt{2}/2$, or any irrational number in $[0,1]$ for that matter). Thus, we cannot assume that $K_n$ is compact, and the contradiction does not follow.
A: Let $(X,d)$ be a complete metric space and let $P$ be a non-empty closed subspace of $X$ with no isolated points. Then P is uncountable.
Notation: $B_d(x,r)=\{y:d(x,y)<r\}.$
By contradiction suppose $P=\{x_n:n\in \Bbb N\}.$ 
Let $f(1)=r(1)=1$ and let $S(1)=B_d(p_{f(1)},r(1)\,)=B_d(x_1,1). $
For $n\in \Bbb N$ inductively presume that $f(n)\in \Bbb N,$ that $r(n)>0$, and that $S(n)=B_d(x_{f(n)},r(n)\,).$ Let $f(n+1)=\min \{m>f(n): x_{f(n)}\ne x_m\in S(n)\}.$  Note that $f(n+1)$ exists because $S(n)\cap P$ is an infinite set.
Then let $r(n+1)=\frac {1}{2}\min (\,d(x_{f(n)},x_{f(n+1)}),\, r(n)-d(x_{f(n)},x_{f(n+1)})\,)$
and let $S(n+1)=B_d(x_{f(n+1)},r(n+1)\,).$
Observe that $f:\Bbb N\to \Bbb N$ is strictly decreasing and that $x_{f(n)}\not \in\overline {S(n+1)}\subset S(n)$ for each $n\in \Bbb N.$
Now $d(x_{f(n)},x_{f(n+1)})<2^{-(n-1)}$ so $(x_{f(n)})_{n\in \Bbb N}$ is a $d$-Cauchy sequence of members of $P$. Since  $P$ is closed and $d$ is complete there exists $k\in \Bbb N$ such  that this sequence converges to $x_k.$ For each $n\in \Bbb N$ we have 
$\{x_{f(m)}:m>n\}$ $\subset$ $ \overline {S(n+1)}$ so $x_k\in \overline {S(n+1)}.$ But $x_{f(n)}\not \in \overline {S(n+1)}.$
So $x_k\ne x_{f(n)}$ and $k\ne f(n)$ for each $n.$
Now $k\ne f(1)=1$ so $k>f(1)$, and $f$ is strictly increasing. So let $n_0=\max \{n\in \Bbb N: k>f(n)\}.$
We have $f(n_0)<k<f(n_0+1).$
And we have $x_k\in \overline {S(n_0+1)}\subset S(n_0)$ and $x_k\ne x_{f(n_0)}$
so $k\in \{m>f(n_0): x_{f(n_0)}\ne x_m\in S(n_0)\}$ 
so $k\ge \min \{m>f(n_0):x_{f(n_0)}\ne  x_m\in S(n_0)\}=f(n_0+1)$ by def'n of $f(n_0+1).$
So $k\ge f(n_0+1),$ contradictory to $f(n_0)<k<f(n_0+1).$ 
