This question is answered, probably in many textbooks on Lie algebras, Chevalley groups, representation theory, etc.. I always think that Bourbaki's treatment of Lie groups and algebras is a great place to look (but I don't have it with me at the moment). I also tend to look things up in Humphreys, and Knapp's "Lie Groups, Beyond an Introduction"

Here's a method that's very good for pen-and-paper computations, and suffices for many examples. I believe that it will algorithmically answer your question in general as well.

The key is the "rank two case", and the key result is the following fact about root strings. I'll assume that we are working with the root system associated to a semisimple complex Lie algebra. Let $\Phi$ be the set of roots (zero is not a root, for me and most authors).

**Definition:**
If $\alpha, \beta$ are roots, the $\beta$-string through $\alpha$ is the set of elements of $\Lambda \cup \{ 0 \}$ of the form $\alpha + n \beta$ for some integer $n$.

**Theorem:** There exist integers $p \leq 0$ and $q \geq 0$, such that the $\beta$-string through $\alpha$ has the form:
$$\{ \alpha + n \beta : p \leq n \leq q \}.$$
Furthermore, the length of this string can be determined from the inner products:
$$p+q = \frac{ -2 \langle \alpha, \beta \rangle }{\langle \beta, \beta \rangle}.$$

**Example:** Let $\alpha$ be the short root and $\beta$ be the long root, corresponding to the two vertices of the Dynkin diagram of type $G_2$. The $\alpha$-string through $\beta$ consists of:
$$\beta, \beta+\alpha, \beta + 2 \alpha, \beta + 3 \alpha,$$
as remarked in the question.

Here $p = 0$ and $q = 3$. Indeed, we find that
$$3 = 0+3 = \frac{ -2 \langle \beta, \alpha \rangle }{\langle \alpha,\alpha \rangle} = \frac{(-2)(-3)}{2},$$
using the Cartan matrix (which is easily encoded in the Dynkin diagram).

Perhaps you already knew this, since you found those roots "clear". But from here, you can continue again with $\alpha$ and $\beta$ root strings through these roots.

For example, let's consider the $\beta$-string through $\beta + 3 \alpha$. These are the roots of the form $\beta + 3 \alpha + n \beta$, for integers $p \leq n \leq q$. We know that $p = 0$, since for $n = -1$ we find that $3 \alpha$ is not a root. The length of the root string is:
$$q = \frac{ -2 \langle \beta+3\alpha, \beta \rangle}{\langle \beta, \beta \rangle} = \frac{ -2(2 - 3)}{2} = \frac{2}{2} = 1.$$
From this we find that (corresponding to $n = q = 1$), there is another root $2 \beta + 3 \alpha$, and furthermore, $m \beta + 3 \alpha$ is not a root for $m \geq 3$.

By using root strings, together with bounds on how long roots can be, one can find all of the roots without taking too much time. It should also be mentioned that, for a simple root system, there is a unique "highest root", in which the simple roots occur with maximal multiplicity. The multiplicities of simple roots in the highest root can be looked up in any decent table, and computed quickly by hand for type A-D-E (using a trick from the McKay correspondence). This is useful for a bound, so you don't mess around with root strings for longer than necessary.