For unique, duplicates etc, numpy is the way to go.
import arcpy
from arcpy.da import TableToNumPyArray, NumPyArrayToTable
f = r"C:\arcpro_npg\npg\Project_npg\npgeom.gdb\sample_10k" # --- a 10k -ish table
arr = TableToNumPyArray(f, "*") # --- produce the array
flds = arr.dtype.names # ---- to get all the fields
sub = arr[['County', 'Town_class', 'Facility']] # --- subsample of the fields
uni, idx, cnts = np.unique(sub, True, return_counts=True) # --- perform unique
uni # ---- unique records for those 3 fields
array([('A', 'A_', 'Hall'), ('A', 'A_', 'Hosp'), ('A', 'B_', 'Hall'),
('A', 'B_', 'Hosp'), ('A', 'C_', 'Hall'), ('A', 'C_', 'Hosp'),
('B', 'A_', 'Hall'), ('B', 'A_', 'Hosp'), ('B', 'B_', 'Hall'),
('B', 'B_', 'Hosp'), ('B', 'C_', 'Hall'), ('B', 'C_', 'Hosp'),
('C', 'A_', 'Hall'), ('C', 'A_', 'Hosp'), ('C', 'B_', 'Hall'),
('C', 'B_', 'Hosp'), ('C', 'C_', 'Hall'), ('C', 'C_', 'Hosp'),
('D', 'A_', 'Hall'), ('D', 'A_', 'Hosp'), ('D', 'B_', 'Hall'),
('D', 'B_', 'Hosp'), ('D', 'C_', 'Hall'), ('D', 'C_', 'Hosp')],
dtype={'names':['County','Town_class','Facility'], 'formats':
['<U4','<U12','<U16'], 'offsets':[8,24,72],
'itemsize':2184})
cnts # ---- counts for each unique record
array([590, 605, 465, 448, 442, 481, 554, 583, 446, 426, 491, 469, 607,
621, 433, 468, 448, 457, 183, 198, 121, 162, 158, 140], dtype=int64)
sum(cnts)
9996
# ----
# NumPyArrayToTable =====> and back to Arc-world
... sort of retired...