def needs_rename(string):
    """Search input string for illegal characters.  If found, return True, list of characters found, cleaned name.
      If not, return False and two empty strings"""
    bad_characters = ["&", "$", "@", "=", ";", "+", ",", "?", "\\", "{", "^", "}", "%", "`", "]", "\"", ">", "[", "~",
                      "<", "#", "|"]
    replacement_character = "_"
    found_bad_characters = []
    cleaned_name = ""
    for char in string:
        if char in bad_characters:
            found_bad_characters.append(char)
            cleaned_name += replacement_character
        else:
            cleaned_name += char
    if len(found_bad_characters) > 0:
        return True, found_bad_characters, cleaned_name
    else:
        return False, "", ""