$ sed -r 's/([0-9])([^0-9])/\1\n\2/g' filename
The above regex looks for a number followed by not a number. If found, it inserts a newline between them.
In more detail, sed commands of the form
s/old/new/ look for
old and replace it with
new. In our case,
old consists of two characters:
([0-9]) matches any number and, because it is enclosed in parens, it saves the value.
([^0-9]) matches anything other than a number and saves it also. Those two characters, if found, are replaced with
\1\n\2 which means the first match (the number), a newline, and the second match (not-a-number).
MORE: If we want to break at the beginnings of numbers as well as at the end, then we add one more substitution command:
$ echo xyz541wpk | sed -r 's/([0-9])([^0-9])/\1\n\2/g; s/([^0-9])([0-9])/\1\n\2/g'
The second substitution command is just like the first but it looks for the reverse pattern: not-a-number followed by a number.