def slicer(l, start, end): if not isinstance(l, list) or not start or not end or start > end or start > len(l) or end > len(l): return None return l[start-1:end] if __name__ == "__main__": print slicer("a", 3, 5) == None print slicer(["a"], 0, 0) == None print slicer(["a"], 0, 1) == None print slicer(["a"], 0, 2) == None print slicer(["a"], 1, 0) == None print slicer(["a"], 1, 1) == ["a"] print slicer(["a"], 1, 2) == None print slicer(["a"], 2, 0) == None print slicer(["a"], 2, 1) == None print slicer(["a"], 2, 2) == None print slicer(["a", "b"], 0, 0) == None print slicer(["a", "b"], 0, 1) == None print slicer(["a", "b"], 0, 2) == None print slicer(["a", "b"], 0, 3) == None print slicer(["a", "b"], 1, 0) == None print slicer(["a", "b"], 1, 1) == ["a"] print slicer(["a", "b"], 1, 2) == ["a", "b"] print slicer(["a", "b"], 1, 3) == None print slicer(["a", "b"], 2, 0) == None print slicer(["a", "b"], 2, 1) == None print slicer(["a", "b"], 2, 2) == ["b"] print slicer(["a", "b"], 2, 3) == None print slicer(["a", "b", "c", "d", "e", "f", "g", "h", "i", "k"], 3, 7) == ["c", "d", "e", "f", "g"]