Lets say you have a string: abcde

And a set of strings: ab, cde, abcd, a, bcd, cd 

You want to find all possible concatenations from the set that form the string.

You can use recursion to traverse through all possible concatenations from the set, but how would you return only those that satisfy the solution? 

The possible combinations:

```
ab - cde - yes
ab - cd - no
abcd - no
a - bcd - no
ab - cd - no

```

You can build a tree from the traverse and then extract the paths that complete. Is there a way without using a tree?

I am implementing this in Python but feel free to answer in any language.