def combine_two(a, b, delimiter='/'):
    """returns an n-nested array of strings a+delimiter+b
    a and b (e.g. uuids and object_keys) can be a singlet,
    an array, an array of arrays or an array of arrays of arrays ...
    example:
    >>> a = ['a','b',['c','d']]
    >>> b = ['e','f',['g','h']]
    >>> combine_two(a, b)
    ['a/e','b/f',['c/g','d/h']]
    """
    if isinstance(a, list):
        if not isinstance(b, list):
            raise Exception("can't combine list and non-list")
        if len(a) != len(b):
            raise Exception("Can't combine lists of different lengths")
        return [combine_two(a_, b_) for a_, b_, in zip(a, b)]
    else:
        return(str(a) + delimiter + str(b))