Consider a transition system defined by $\langle S,T \rangle$, where $S$ is a set of states and $T \subseteq S \times S$ is a set of transitions, where $T$ is total, i.e. for every state $s$ there is at least one outgoing transitions $(s,s') \in T$.
Each path corresponds to a set of states, namely, the states visited along that path. Given a transition system $\langle S,T \rangle$ and an initial state $s_0 \in S$, I would like an algorithm that outputs the list of all sets of states that can arise from all infinite paths in $\langle S,T \rangle$ that start at $s_0$.
As a trivial example consider $S = \{s_0, s_1, s_2 \}$, $T = \{(s_0,s_1),(s_0,s_2),(s_1,s_1),(s_2,s_2)\}$, with initial state $s_0$; I would like the algorithm to output $\{s_0,s_1\}, \{s_0,s_2\}$.
Is there an algorithm for this problem? I believe this can be accomplished with strongly connected components, but I don't know what to search for in the literature.