This is a naturally recursive problem. Let's take ['hel', 'hol', 'llo', 'he'] as an example, where the goal is to make the word 'hello':
'hel' is a possible start; it works if 'lo' can be formed from ['hol', 'llo', 'he']. This is a smaller instance of the same problem, and the answer is no, 'lo' can't be formed. So we continue.
'hol' is not a possible start, so skip it.
'llo' is also not a possible start.
'he' the next option; it works if 'llo' can be formed from ['hel', 'hol', 'llo']. This is another smaller instance of the same problem, and the answer is yes, so we stop.
The algorithm is quite straightforward: for each part, if the word starts with that part, then try to recursively form the remainder of the word using the remainder of the list of parts.
The base case is the empty string: it can always be formed. Hopefully that gives you enough to go on.