Dividindo uma string em palavras e pontuação

Estou tentando dividir uma string em palavras e pontuação, adicionando a pontuação à lista produzida pela divisão.

Por exemplo:

>>> c = "help, me"
>>> print c.split()
['help,', 'me']

Eu realmente quero que a lista seja:

['help', ',', 'me']

Então, eu quero que a string seja dividida em espaço em branco com a pontuação dividida das palavras.

Tentei analisar a string primeiro e, em seguida, execute a divisão:

>>> for character in c:
...     if character in ".,;!?":
...             outputCharacter = " %s" % character
...     else:
...             outputCharacter = character
...     separatedPunctuation += outputCharacter
>>> print separatedPunctuation
help , me
>>> print separatedPunctuation.split()
['help', ',', 'me']

Isso produz o resultado que eu quero, mas é dolorosamente lento em arquivos grandes.

Existe uma maneira de fazer isso com mais eficiência?

questionAnswers(10)

yourAnswerToTheQuestion