'Yield a number of encodings that might work for this markup.'

@property
def encodings(self):

    tried = set()
    for e in self.override_encodings:
        if self._usable(e, tried):
            (yield e)
    if self._usable(self.sniffed_encoding, tried):
        (yield self.sniffed_encoding)
    if (self.declared_encoding is None):
        self.declared_encoding = self.find_declared_encoding(self.markup, self.is_html)
    if self._usable(self.declared_encoding, tried):
        (yield self.declared_encoding)
    if (self.chardet_encoding is None):
        self.chardet_encoding = chardet_dammit(self.markup)
    if self._usable(self.chardet_encoding, tried):
        (yield self.chardet_encoding)
    for e in ('utf-8', 'windows-1252'):
        if self._usable(e, tried):
            (yield e)
