def get_all_cells_tensor(dimensions, board):
    """
    Gets all cell values of an nD board recursively.
    
    Parameters:
       dimensions (tuple): dimensions of the board  
       board (list): board of cell values   
       
    Returns: a set with all cell coordinates
    """    
    
    # Base Cases:
    if len(dimensions) == 0:
        return set()
    
    if len(dimensions) == 1:
        return {(i,) for i in range(dimensions[0])}
    
    # Recursive Case
    all_cells = set()
    recursive_set = get_all_cells_tensor(dimensions[1:], board[1:])
    for i in recursive_set:
        for j in range(dimensions[0]):
            all_cells.add((j,) + i)
            
    return all_cells