strip () y strip (string.whitespace) dan resultados diferentes a pesar de la documentación que sugiere que deberían ser iguales

Tengo una cadena Unicode con algunos espacios que no se rompen al principio y al final. Obtengo resultados diferentes cuando usostrip() vs.strip(string.whitespace).

>>> import string
>>> s5 = u'\xa0\xa0hello\xa0\xa0'
>>> print s5.strip()
hello
>>> print s5.strip(string.whitespace)
  hello  

La documentación parastrip() dice: "Si se omite oNone, elchars el argumento predeterminado es eliminar espacios en blanco ". La documentación parastring.whitespace dice: "Una cadena que contiene todos los caracteres que se consideran espacios en blanco".

Así que sistring.whitespace contiene todos los caracteres que se consideran espacios en blanco, entonces, ¿por qué los resultados son diferentes? ¿Tiene algo que ver con Unicode?

Estoy usando Python 2.7.6

Respuestas a la pregunta(1)

Su respuesta a la pregunta