Because you tag numpy. You need to check each row of B with each row in A then use numpy.all and numpy.any. (but you need to consider in python, Index start from zero, if you want [3,8]. you need to +1 result.)
>>> np.argwhere((A==B[:,None]).all(-1).any(0)).ravel()
array([2, 7])
Explanation:
>>> A = np.asarray(A)
>>> B = np.asarray(B)
>>> A == B[:,None]
array([[[ True, False],
        [ True, False],
        [ True,  True],
        [False, False],
        [False, False],
        [False,  True],
        [False, False],
        [False, False],
        [False,  True]],
       [[False, False],
        [False,  True],
        [False, False],
        [False, False],
        [False,  True],
        [False, False],
        [ True, False],
        [ True,  True],
        [ True, False]]])
>>> (A==B[:,None]).all(axis=-1)
array([[False, False,  True, False, False, False, False, False, False],
       [False, False, False, False, False, False, False,  True, False]])
>>> (A==B[:,None]).all(axis=-1).any(axis=0) <- you want index of this array that have `True` value
array([False, False,  True, False, False, False, False,  True, False])
>>> np.argwhere((A==B[:,None]).all(axis=-1).any(axis=0))
array([[2],
       [7]])
>>> np.argwhere((A==B[:,None]).all(axis=-1).any(axis=0)).ravel()
array([2, 7])