class List(list):
    def __init__(self, offset, *args):
        super().__init__(*args)
        self.offset = offset
    def offset(method):
        def wrapped(self, index, *args):
            index -= self.offset
            return method(self, index, *args)
        return wrapped
    @offset
    def __setitem__(self, key, value):
        super().__setitem__(key, value)
    @offset
    def __getitem__(self, item):
        return super().__getitem__(item)
a = List(42, 'abcdef')