def list_to_string(input, delimiter):
if isinstance(input, list):<EOL><INDENT>return delimiter.join(<EOL>list_to_string(item, delimiter) for item in input)<EOL><DEDENT>return input<EOL>
converts list to string recursively so that nested lists are supported

    :param input: a list of strings and lists of strings (and so on recursive)
    :type input: list
    :param delimiter: the deimiter to use when joining the items
    :type delimiter: str
    :returns: the recursively joined list
    :rtype: str