It looks like a $1$-dimensional overlapping jigsaw puzzle,
or Marshall Squares in 1d.
They are very easy to make, just type in a string and then partition it accordingly.
For example:
AD DF DS FD FS SA SF
is derived from:
ADSFDFSA
To solve or check for the uniqueness of a solution, we can check all $k!$ permutations, but we can improve on this using a recursive sieved tree algorithm.
First check the opening pairs for successful candidates, and store the result in a new array as [{pair},last letter, remaining array], and repeat the process on the new array.
For example, the new array for my example, starting from:
[{},NULL,[AD,DF,FD,DS,SF,FS,SA]]
would contain:
[{AD,DF},F,[DS,FD,FS,SA,SF]]
...
[{FD,DF},F,[AD,DS,FS,SA,SF]]
[{FD,DS},S,[AD,DF,FS,SA,SF]]
...
giving only 13 new entries.
The next level should produce entries like:
[{AD,DF,FD},D,[DS,FS,SA,SF]]
and repeat until:
[{AD,DF,FD,DS,SF,FS,SA},NULL,[]]
for example.
(Note that this means my example is not uniquely defined - ADFDSFSA also works!)