def decipher(self,string):
ret = '<STR_LIT>'<EOL>string = string.upper()<EOL>rowseq,colseq = [],[]<EOL>for i in range(<NUM_LIT:0>,len(string),self.period):<EOL><INDENT>tempseq = []<EOL>for j in range(<NUM_LIT:0>,self.period):<EOL><INDENT>if i+j >= len(string): continue<EOL>tempseq.append(int(self.key.index(string[i + j]) / <NUM_LIT:5>))<EOL>tempseq.append(int(self.key.index(string[i + j]) % <NUM_LIT:5>))<EOL><DEDENT>rowseq.extend(tempseq[<NUM_LIT:0>:int(len(tempseq)/<NUM_LIT:2>)])<EOL>colseq.extend(tempseq[int(len(tempseq)/<NUM_LIT:2>):])<EOL><DEDENT>for i in range(len(rowseq)):<EOL><INDENT>ret += self.key[rowseq[i]*<NUM_LIT:5> + colseq[i]]<EOL><DEDENT>return ret<EOL>
Decipher string using Bifid cipher according to initialised key. Punctuation and whitespace
        are removed from the input.

        Example::

            plaintext = Bifid('phqgmeaylnofdxkrcvszwbuti',5).decipher(ciphertext)     

        :param string: The string to decipher.
        :returns: The deciphered string.