Il suffit d’utiliser la valeur absolue abs(...)

type PartialChessboard = list[int | None]

def check_constraints(q: PartialChessboard, n: int) -> bool:
    '''
    Vérifie que toutes les contraintes du problème soient satisfaites dans la
    solution partielle ``q`` représentant la ligne sur laquelle est placée chaque dames
    q[i]. On ne considère que les j premiers éléments de la liste q.

    >>> check_constraints([0], 1)
    True
    >>> check_constraints([1, 3, None, None], 2)
    True
    >>> check_constraints([1, None, None, None], 1)
    True
    >>> check_constraints([3, None, None, None], 1)
    True
    >>> check_constraints([1, 3, 5, 0, 2, 4], 6)
    True
    >>> check_constraints([1, 3, None, None], 2)
    True

    >>> check_constraints([0, 1, 2, 3], 4)
    False
    >>> check_constraints([3, 2, None, None], 2)
    False
    >>> check_constraints([2, 3, None, None], 2)
    False
    >>> check_constraints([1, 1, None, None, None], 2)
    False

    '''

    for i in range(n):
        for j in range(i + 1, n):
            if q[i] == q[j]: return False
            if abs(q[i] - q[j]) == i - j: return False

    return True

if __name__ == '__main__':
    import doctest
    doctest.testmod