Учитывая то, что вы пытаетесь сделать, разделив больше, чем просто "|"не требуется, так как будет работать следующее:
mystr = "1 2 3|4 5 6| 7 8"
newstr = "".join(mystr.split("|").reverse())
Чтобы ответить, как разбить также на пробелы
mylist = []
for chunk in mystr.split("|"):
mylist.extend(chunk.split())