Open sets in a separable metric space

Suppose that $\displaystyle (X, \rho ) $ is a separable metric space. Then there exists a sequence $\displaystyle \{ x_n \} $ such that it is dense in X. Prove that any open set $\displaystyle U \subset X $ is a union of elements from the set $\displaystyle B = \{ B(x_n,r) : r \in \mathbb {Q} \} $.

My idea so far.

So since X is separable, I know that every nonempty open subset U contains at least one element of the sequence $\displaystyle \{ x_n \} $.

So say that $\displaystyle U_1 $ is an nonempty open subset in X, then there should exist at least one element from the sequence, say $\displaystyle x_m, \ m \in \mathbb {N}$, that is contained in U. And since U is open, we can find some $\displaystyle \epsilon _1 > 0 $ such that $\displaystyle B(x_m, \epsilon _1) \subset U $.

Also, I believe that I can pick a point, say $\displaystyle y \in U $, such that $\displaystyle x_m \in B(y, \delta ) ^c $ for some small $\displaystyle \delta > 0 $. Then I should be able to find another point $\displaystyle x_i \in B(y, \delta )$ since it is open. Then I can get another $\displaystyle B(x_i , \epsilon _2 ) $...

But how should I proceed to get $\displaystyle U \subset \bigcup B(x_n,r) $?

Thank you!