'Return all nodes with keys in the given range.
Parameters
lower : tuple
Lower bound
upper : tuple
Upper bound
bounds : tuple (x, y) of bools
Indicates whether the search should be inclusive or
exclusive with respect to the endpoints. The first
argument x corresponds to an inclusive lower bound,
and the second argument y to an inclusive upper bound.'

def range(self, lower, upper, bounds=(True, True)):

    nodes = self.range_nodes(lower, upper, bounds)
    return [x for node in nodes for x in node.data]
