def adjoin(space, *lists, **kwargs):
strlen = kwargs.pop('<STR_LIT>', len)<EOL>justfunc = kwargs.pop('<STR_LIT>', justify)<EOL>out_lines = []<EOL>newLists = []<EOL>lengths = [max(map(strlen, x)) + space for x in lists[:-<NUM_LIT:1>]]<EOL>lengths.append(max(map(len, lists[-<NUM_LIT:1>])))<EOL>maxLen = max(map(len, lists))<EOL>for i, lst in enumerate(lists):<EOL><INDENT>nl = justfunc(lst, lengths[i], mode='<STR_LIT:left>')<EOL>nl.extend(['<STR_LIT:U+0020>' * lengths[i]] * (maxLen - len(lst)))<EOL>newLists.append(nl)<EOL><DEDENT>toJoin = zip(*newLists)<EOL>for lines in toJoin:<EOL><INDENT>out_lines.append(_join_unicode(lines))<EOL><DEDENT>return _join_unicode(out_lines, sep='<STR_LIT:\n>')<EOL>
Glues together two sets of strings using the amount of space requested.
The idea is to prettify.

----------
space : int
    number of spaces for padding
lists : str
    list of str which being joined
strlen : callable
    function used to calculate the length of each str. Needed for unicode
    handling.
justfunc : callable
    function used to justify str. Needed for unicode handling.