Ecco il mio ragionamento.
Supponiamo che Aldo sia un matematico.
Inizia dicendo di essere avvocato, quindi mente. Poiché mente, non può essere matematico, e la base da cui siamo partiti (Aldo = matematico) va scartata.
Supponiamo allora che Aldo sia un avvocato.
Aldo dice di essere avvocato, quindi la sua prima affermazione è vera e la successiva sarà falsa: dunque Beppe non è matematico ma è politico (poiché il posto di avvocato è già occupato da Aldo).
Beppe (che abbiamo visto essere politico, e in tal caso deve dire sempre menzogne) dice di essere matematico (bugia!) e dice che Carlo è un politico (bugia!). Carlo può quindi essere solo matematico o avvocato: visto che l'avvocato è Aldo, Carlo deve essere un matematico.
Carlo però dice di essere un politico, e questa è una bugia che non si addice con ciò che abbiamo stabilito prima (cioè, che è un matematico che dice sempre la verità): quindi anche questa base di partenza (Aldo = avvocato) non va bene.
Supponiamo infine che Aldo sia un politico.
Aldo deve mentire: prima afferma di essere avvocato (e fin qui ci siamo), poi afferma che Beppe è un matematico (e questa deve essere un'altra bugia). Dunque Beppe non è matematico, e non è neanche un politico (perché lo è già Aldo), e deve per forza essere un avvocato.
Beppe afferma di essere un matematico (affermazione falsa) e dice che Carlo è un politico. Quest'ultima affermazione deve essere vera (visto che l'avvocato Beppe alterna una bugia a una verità), ma Carlo non può essere politico (perché lo è già Aldo).
Quindi anche questa terza base di partenza (Aldo = politico) è da scartare.
Se ognuno fa una professione diversa, il problema non è risolvibile.
Se invece le professioni possono essere "doppie", allora... dimmelo, che rielaboro il ragionamento!