Baby Rudin theorem 2.41: need a rigorous construction when $E$ is not closed. In Baby Rudin (Principles of Mathematical Analysis), theorem 2.41 says,

2.41. If a set $E$ in $R^k$ has one of these three properties, it has the other two: 

$(a)$ $E$ is closed and bounded;
$(b)$ $E$ is compact;
$(c)$ Every infinite subset of $E$ has a limit point in $E$.


Here is Rudin's proof for $(c) \implies E$ is closed (by contradiction). (I generalize it to any metric space because it seems the proof depends only to properties of metric space. Please correct me if anything wrong.)

If $E$ is not closed, then $\exists\; x_0 \in E' \setminus E$. Choose an infinite sequence $S = \{ x_n \in E\}$ such that $d(x_n, x_0) < 1/n$. Then $S$ has no limit point other than $x_0$. For if $y \ne x_0$, then $$d(x_n, y) \ge d(x_0, y) - d(x_0, x_n) \ge d(x_0, y)-\frac{1}{n} \ge \frac{1}{2} d(x_0, y)$$ holds when $n$ is big enough. Hence $y \notin S'$. Thus $S$ has no limit point in $E$; hence $(c)$ implies that $E$ is closed.

I understand the idea behind Rudin's construction of $S$, which is to construct a sequence getting closer and closer to $x_0$ such that no point other than $x_0$ can be a limit point of $S$. 
However, it seems Rudin's approach lacks some details for step-by-step construction since the definition of limit points does not assure there exists one point in $N_{r_1}(x_0) \setminus N_{r_2}(x_0)$ with $r_1 > r_2$. So how to pick distinct $x_n$ every time while $d(x_n, x_0) < \frac{1}{n}$ must be met? Or, is there another scheme can fix it?
 A: We need to show that (c) implies (a). 
Suppose that every infinite subset of $E$ has a limit point in $E$. We show that then $E$ is both closed and bounded. 
Suppose, if possible, that the set $E$ is unbounded. Then there exists a point $x_1 \in E$ such that $\vert x_1 \vert >1$, for otherwise the set $E$ would be contained in the unit closed ball about the origin in $\mathbb{R}^k$. 
Using the same reasoning, we can find a point $x_2 \in E$ such that $$\vert x_2 \vert > 1 + \max \left( 2, \vert x_1 \vert \right).$$ 
Having chosen the point $x_{n-1}$ (where $n \geq 3$), we can choose a point $x_n \in E$ such that $$\vert x_n \vert > 1 + \max \left( n  , \vert x_1 \vert, \ldots, \vert x_{n-1} \vert \right).$$ Otherwise, the set $E$ would be contained in a closed ball of radius equal to $1 + \max \left(n, \vert x_1 \vert, \ldots, \vert x_{n-1} \vert \right)$ and centered at the origin. 
We have thus inductively chosen a sequence $\{x_n \}_{n \in \mathbb{N}}$ of distinct points of $E$ such that, for each $n \in \mathbb{N}$, we have  $\vert x_n \vert > n$ and $\vert x_n \vert > \vert x_i \vert$ for all $i \in \{\  1, \ldots, n-1 \ \}$. 
Let us define the set $S$ as $$S \colon= \{ \ x_n \ \colon \ n \in \mathbb{N} \ \}.$$
This set $S$ is an infinite subset of $E$. We show that this set $S$ has no limit points in $\mathbb{R}^k$ and hence no limit points in $E$. 
For any $m, n \in \mathbb{N}$ such that $n > m$, we have $$\vert x_n - x_m \vert \geq \vert x_n \vert - \vert x_m \vert \geq  1 + \max \left( n, \vert x_1 \vert, \ldots, \vert x_{n-1} \vert \right)  - \vert x_m \vert > 1.$$ 
Thus it follows that, for any $m, n \in \mathbb{N}$ such that $n \neq m$, the inequality $\vert x_n - x_m \vert > 1$ holds. 
So if some point $x \in \mathbb{R}^k$ were a limit point of $S$, then there would be infinitely many values $n \in \mathbb{N}$ such that $$\vert x_n - x \vert < \frac 1 4,$$ and  for any two (distinct) such points $x_m$ and $x_n$ of $S$, we would have $$\vert x_m - x_n \vert \leq \vert x_m - x \vert + \vert x_n - x \vert < \frac 1 4 + \frac 1 4 = \frac 1 2,$$
which contradicts what we have shown above about the distance between any two distinct points of $S$. 
So the set $S$, though an infinite subset of $E$, fails to have a limit point in $\mathbb{R}^k$ and hence in $E$. 
Therefore, the set $E$ must be bounded. 
Next, suppose that $E$ is not closed. Then $E$ has a limit point $x_0 \in \mathbb{R}^k - E$. Since $x_0$ is a limit point of $E$, every neighborhood of $x_0$ contains a point of $E$ distinct from the point $x_0$ itself (in fact infinitely many points of $E$). 
Thus, there is a point $x_1 \in E$ such that $$0 < \vert x_1 - x_0 \vert < \frac 1 2.$$
Again there is a point $x_2 \in E$ such that $$0 < \vert x_2 - x_0 \vert < \min \left( \vert x_1 - x_0 \vert, \frac 1 3 \right).$$
Assuming that the point $x_{n-1}$ (where $n \geq 3$) has been chosen, we can choose a point $x_n \in E$  such that $$0 < \vert x_n - x_0 \vert < \min \left( \vert x_1 - x_0 \vert, \ldots,  \vert x_{n-1} - x_0 \vert, \frac{1}{n+1} \right).$$ 
Thus we have recursively defined a sequence $\{x_n \}_{n\in\mathbb{N}}$ of points of $E$ for which $x_n \neq x_m$ for all $m, n \in \mathbb{N}$ such that $m \neq n$ and also $$0 < \vert x_n - x_0 \vert < \frac 1 n \ \mbox{ for all } \ n \in \mathbb{N}.$$
Let us define the set $S$ as follows: 
$$S \colon= \left\{ \ x_n \ \colon \ n \in \mathbb{N} \ \right\}.$$
This set $S$ is an infinite subset of $E$. 
We show that $x_0$ is the only limit point of $S$. That is, we show that $x_0$ is a limit point of $S$ but no other point $y$ of $\mathbb{R}^k$ can be a limit point of $S$. 
Let $\delta$ be any positive real number. Then, by the archimedean property of $\mathbb{R}$, we can find $n_\delta \in \mathbb{N}$ such that $$n_\delta > \frac 1 \delta,$$ and so, for all $n \in \mathbb{N}$ such that $n \geq n_\delta$, we have $$0 < \vert x_n - x_0 \vert < \frac{1}{n+1} < \frac 1 n_\delta < \delta,$$
which implies that $x_0$ is indeed a limit point of $S$. 
Now if $y \in \mathbb{R}^k$ and $y \neq x_0$, then $\vert y - x_0 \vert > 0$. So we can find a positive integer $N$ such that $$N > \frac{2}{\vert y -x_0 \vert}.$$
So, for every $n\in \mathbb{N}$ such that $n \geq N$, we have 
$$ 0 < \vert x_n - x_0 \vert < \frac{1}{n} \leq \frac 1 N  < \frac{\vert y - x_0 \vert}{2}$$
and hence, for every $n\in \mathbb{N}$ such that $n \geq N$, we have 
$$\vert x_n  - y \vert \geq \vert y - x_0 \vert - \vert x_n - x_0 \vert \geq  \vert y - x_0 \vert -  \frac{\vert y - x_0 \vert}{2} > \frac{\vert y - x_0 \vert}{3}. $$
So if we take a positive real number $\epsilon$ such that 
$$0 < \epsilon < \frac{1}{2} \min \left( \vert x_1 - y \vert, \ldots, \vert x_N - y \vert, \frac{\vert y - x_0 \vert}{3} \right),$$
then there is no point of set $S$ that lies in the neighborhood of  the point $y$ of radius $\epsilon$, other than the point $y$ itself if $y \in S$; that is, 
$$S \cap \left( N_\epsilon (y) - \{ y \} \right) = \emptyset,$$
which implies that the point $y$ cannot be a limit point of the set $S$. 
But $y$ was any point of $\mathbb{R}^k$ other than the point $x_0$. Therefore, $x_0$ is the only limit point of the set $S$. 
But $x_0 \not\in E$ by our hypothesis. Thus we have found an infinite subset $S$ of $E$ such that no point of $E$ is a limit point of $S$.  The only limit point of $S$, namely the $x_0$, ( which is also a limit point of the set $E$ by our hypothesis)  does not belong to $E$. 
So if every infinite subset of the set $E \subset \mathbb{R}^k$ were to have a limit point in $E$, then the set $E$ must be closed and bounded. 
A: Because you are dealing with such generality, coming up with a step-by-step construction is probably not possible. Rudin is rely on the properties of limit points only to construct $S$.  If a specific set $E$ were given, one could probably with an explicit construction.
A: Finally I figure out how to patch Rudin's proof for $E$ being not closed as well as for $E$ being not bounded. [Suppose $E$ is infinite. For if $E$ is finite, it is trivial that $(a)$ follows from $(c)$.]


*

*$E$ is not closed


As I mention in the question, the idea for $E$ being not closed is to construct a sequence $S$, getting closer and closer to $x_0$, such that no point other than $x_0$ can be a limit point of $S$.
The patch is: Take $r_n = \min \{ \frac{1}{n}, d( x_{n-1}, x_0) \}$ instead of $\frac{1}{n}$.
Here is the thorough proof (by contrapositive).
If $E$ is not closed, then there exists at least one limit point of $E$, namely $x_0$, such that $x_0$ is not in $E$, since having no limit point makes $E$ closed. With $x_0$ being a limit point of $E$, every neighborhood of $x_0$ intersects $E$ at a point different from $x_0$. Take $r_n = \min \{ \frac{1}{n}, d( x_{n-1}, x_0 ) \}$. Then there exists at least one point in $N_{r_n} (x_0) \setminus \{x_0\}$, and since $r_n < d( x_{n-1}, x_0 )$, $\;\;x_{n}$ is distinct from $x_{n-1}$.
Put $S = \{ x_n \}$. Now the construction is completed. 
If $y \neq x_0$, then $$d(x_n, y) \geq d(x_0, y) - d(x_0, x_n) > d(x_0, y) - \frac{1}{n} > \frac{1}{2} d(x_0, y)$$ holds when $n$ is big enough (say $n > n_0$). The last inequality follows from the Archimedean property of $\mathbb{R}$ (P.9 of Rudin). Then the neighborhood of $y$ with radius equals $\frac{1}{2} d(x_0, y)$ contains at most $n_0$ points of $S$. With finite points, we can take minimum. Put $r_y = \min \{ d(x_1, y), d(x_2, y), \ldots, d(x_{n_0}, y) \}$, then $N_{r_y}$ contains no point of $S$, hence $y$ can not be a limit point of $S$.


*$E$ is not bounded


The idea for $E$ being not bounded is to construct a sequence $S$, in which the distance of any two points is greated than $1$. Then $S$ has no limit point at all.
The patch is: Take $r_n = 1 + \max \{ d(x_2, x_1), d(x_3, x_1), \ldots, d(x_{n-1}, x_1) \}$ instead of $n$.
Here is the thorough proof (by contrapositive).
Suppose $E$ is not bounded. First, $E$ is nonempty since $E$ is infinite. Given $x_1 \in E$, for each $r_n$, there exists at least one point of $E$ which is not in $N_{r_n} (x_1)$, or $E$ will be bounded. The choice of $r_n$ assures that $d( x_n, x_k )$, for $k < n$, is greater than $1$. Put $S = \{ x_n, n \in \mathbb{N} \}$. Hence $\forall x_n \in S$, $N_{0.5} (x_n) \setminus \{ x_n \}$ is empty. $S$ has no limit point at all.
Thus, $(c) \implies (a)$. And, it seems these two step-by-step constructions work in any metric space.
A: Suppose $E$ is not bounded, then $E$ contains a subset $S$ with points $x_n$ such that 
\begin{align}
|x_n|>n, \hspace{10mm}(n=1,2,3,\dots) 
\end{align}
We observe for any positive integer $m$, that the set defined by $S_m=\{x_n\in S : |x_n|<m\}$ can at the most contain '$m$' elements from $S.$
Now suppose $S$ has a limit point $x.$ By Archimedean property $\exists k\in \mathbb{N}$ such that $|x|\le k.$
Then $N_1(x)\cap S\subseteq S_{k+1}$ and thus $N_1(x)$ contains only finitely many points of $S$ and cannot be a limit point of $S.$

$$ y\in N_1(x)\cap S \implies\left\lvert{y-x}\right\rvert<1 \implies \left\lvert{y}\right\rvert-\left\lvert{x}\right\rvert<1 \implies \left\lvert{y}\right\rvert <1+\left\lvert{x}\right\rvert \implies \left\lvert{y}\right\rvert<1+k \implies y\in S_{k+1} $$

