Smart meters become increasingly popular in measuring consumption of utilities such as electricity, gas and water. Mining consumption data reveals useful behavioural patterns about the latest use activities. In this paper, we define routine behaviours to characterize recurrent activities from smart meter data. Due to routine behaviours’ special characteristics, traditional pattern discovery algorithms such as motif discovery algorithms are not applicable. Therefore, we propose an efficient algorithm to discover routine behaviours of all possible lengths by incrementally growing subsequences. To ensure systematic evaluations, we first generated synthetic datasets with known ground truth. Experiments on synthetic datasets demonstrate that the proposed algorithm has comparable accuracy with a brute-force algorithm but requires less computing time. Furthermore, we demonstrate that useful domain knowledge can be extracted from discovered routines on two real-world datasets that record water consumption in two areas.