As I wrote previously:
re.findall will return a list which could be an empty list (len(list) == 0).
With your code self.letter_list2 can be empty. This means you assign an empty list to self["ProgramTV"] which leads to your crash in Elaya = self['ProgramTv'].getCurrent() + '"' + self['ProgramTv'].getCurrent() + '"'
because getCurrent() is None. Thus, you cannot access list elements.