def bresenham(start, end):
    """
    Rasterize a line from start to end onto a grid with grid-width 1.

    :param start: A sequence of length 2, containing the x,y coordinates of the start of the line
    :param start: A sequence of length 2, containing the x,y coordinates of the end of the line
    :returns: A list of tuples (x,y), where x and y are integers.
    """
    if start == end:
        return [start]
    points = []
    dx = end[0] - start[0]
    dy = end[1] - start[1]
    x, y = start
    if dx == 0:
        sx = 0
    else:
        sx = dx // abs(dx)
    if dy == 0:
        sy = 0
    else:
        sy = dy // abs(dy)
    dx = abs(dx)
    dy = abs(dy)
    if dx > dy:
        err = dx / 2.0
        while x != end[0]:
            points.append((x, y))
            err -= dy
            if err < 0:
                y += sy
                err += dx
            x += sx
    else:
        err = dy / 2.0
        while y != end[1]:
            points.append((x, y))
            err -= dx
            if err < 0:
                x += sx
                err += dy
            y += sy
    points.append((x, y))
    return points
