I think this is a little more elegant/pythonic as well as being general. You may find it less readable if you are not used to a functional style though:
li = ['a','b','c','d','e']
from operator import add
reduce(add, [(elt, "-") for elt in li])[:-1]
If you like, you could use lambda a, b: a+b instead of operator.add.