Here is a situation in which changing your data structure a bit can make things much easier. If you start with lists of strings instead of a single string (or turn your strings into lists of strings) you can do this with one function ("Outer") in Mathematica: Here are two ways to do it depending on if your inputs are separated or together.
In[7]:= firstpart = {"I need", "I want", "I would like"};
secondpart = {" help", " support", " assistance", " customer support"};
thirdpart = {" please", " if possible"};
allparts = {firstpart, secondpart, thirdpart};
In[11]:= Outer[StringJoin, firstpart, secondpart, thirdpart]
Out[11]= {{{"I need help please",
"I need help if possible"}, {"I need support please",
"I need support if possible"}, {"I need assistance please",
"I need assistance if possible"}, {"I need customer support \
please", "I need customer support if possible"}}, {{"I want help \
please", "I want help if possible"}, {"I want support please",
"I want support if possible"}, {"I want assistance please",
"I want assistance if possible"}, {"I want customer support \
please", "I want customer support if possible"}}, {{"I would like \
help please",
"I would like help if possible"}, {"I would like support please",
"I would like support if possible"}, {"I would like assistance \
please", "I would like assistance if possible"}, {"I would like \
customer support please",
"I would like customer support if possible"}}}
In[12]:= Outer @@ Join[{StringJoin}, allparts]
Out[12]= {{{"I need help please",
"I need help if possible"}, {"I need support please",
"I need support if possible"}, {"I need assistance please",
"I need assistance if possible"}, {"I need customer support \
please", "I need customer support if possible"}}, {{"I want help \
please", "I want help if possible"}, {"I want support please",
"I want support if possible"}, {"I want assistance please",
"I want assistance if possible"}, {"I want customer support \
please", "I want customer support if possible"}}, {{"I would like \
help please",
"I would like help if possible"}, {"I would like support please",
"I would like support if possible"}, {"I would like assistance \
please", "I would like assistance if possible"}, {"I would like \
customer support please",
"I would like customer support if possible"}}}
Note that the output has every combination as a nested list (which might be useful to you or you may want to Flatten it). Also, I added spaces to the second and third parts to make the final strings readable. You could easily do this programmatically or as part of your input.