from pyparsing import delimitedList, Word, alphas, Combine
str1 = Combine(Word(alphas) + "+" + Word(alphas)) # "x+y"
str2 = Combine(Word(alphas) + "++") # "c++"
str3 = Word(alphas) # "z"
strs = str1 | str2 | str3
f = delimitedList(strs, "+")
print(f.parseString("x+y+c+++z+x+z+++x"))
ZnJvbSBweXBhcnNpbmcgaW1wb3J0IGRlbGltaXRlZExpc3QsIFdvcmQsIGFscGhhcywgQ29tYmluZQoKc3RyMSA9IENvbWJpbmUoV29yZChhbHBoYXMpICsgIisiICsgV29yZChhbHBoYXMpKSAgICAgIyAieCt5IgpzdHIyID0gQ29tYmluZShXb3JkKGFscGhhcykgKyAiKysiKSAgICAgICAgICAgICAgICAgICAjICJjKysiCnN0cjMgPSBXb3JkKGFscGhhcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgInoiCgpzdHJzID0gc3RyMSB8IHN0cjIgfCBzdHIzCgpmID0gZGVsaW1pdGVkTGlzdChzdHJzLCAiKyIpCnByaW50KGYucGFyc2VTdHJpbmcoIngreStjKysreit4K3orKyt4Iikp